Часто при работе с формами нужно передать данные в форме скрытых полей. Представим, например, что форма, с которой вы работаете, требует передачи введенной в нее информации на сервер в течение пяти минут.
Несмотря на то что сериализация не очень часто используется в формах (гораздо чаще она применяется в базах данных), она может оказаться весьма полезной для преобразования в последовательный вид переменных РНР. Что же такое сериализация? Это процесс, посредством которого сложная структура данных, например, массив или объект (который не может быть передан в форму или базу данных непосредственно), преобразуется в строку с помощью некоторого обратимого метода.
Несмотря на то что кодирование данных при передаче между HTML-формами, базами данных и так далее чрезвычайно полезно, в РНР поддерживается несколько более простых (и очень удобных) преобразований. В качестве иллюстрации предположим, что нужно отобразить в браузере следующую строку:
При кодировании двоичных данных полезна функция base64_encode (), имеющая следующий синтаксис: base64_encode($data) где $data — данные для кодирования. Функция возвращает данные в переменной $data в формате base64.
Часто при пересылке данных формы или в GET-запросе к серверу (то есть, в части URL) необходимо преобразовать символы, имеющие специальное значение в HTTP-запросе (не-алфавитно-цифровые символы), в допустимый формат. В HTTP-запросах таким форматом является шестнадцатеричный ASCII-код символа, имеющий префикс %. Исключение составляет символ пробела, представляемый знаком +. Предположим, что нужно передать переменную myvar, имеющую значение / value, в другой PHP-сценарий.
Часто, особенно при передаче данных между РНР и внешними источниками (такими как HTML-формы или базы данных), необходимо кодировать или преобразовать данные в требуемый формат. Этот раздел посвящается функциям РНР, предназначенным для этих целей.
При обработке и отображении данных из форм возникает общая проблема, трактуемая иногда как некая тонкость РНР — "магические" кавычки. При работе с внешними по отношению к РНР данными (с вводом из форм или баз данных) РНР может автоматически добавлять символ отмены (обратный слэш) к любому символу, который может привести к возникновению проблемы. Например, если строка содержит символ кавычки (одиночной или двойной), это может привести к проблеме при отображении этой строки в браузере.
Чтобы загрузка файлов работала правильно в РНР, должны быть корректно установлены множество конфигурационных директив в файле php. i n i . Особенно это касается директив file_uploads, uploads_max_filesize, upload_tmp_dir и post_max_size, которые влияют на возможности РНР, связанные с загрузкой файлов. Более подробное описание этих директив содержится в руководстве по РНР.
Элемент SELECT потенциально может использоваться для выбора нескольких элементов и потому передаст несколько значений PHP-сценарию. К сожалению, установка атрибута NAME в значение вроде myselect создаст переменную $_GET [ 'myselect' ], которая будет содержать только последний выбранный элемент списка.
Теперь, когда вы получили представление о том, как организовать доступ к внешнему вводу из PHP-сценария, множество небольших вопросов могут возникать во время применения этих знаний на практике. Для начала рассмотрим элементы HTML, имена которых включают точку.