Управление загрузкой файлов

НА ЗАМЕТКУ -
Чтобы загрузка файпов работала правильно в РНР, должны быть корректно установлены множество конфигурационных директив в файле php.ini. Особенно это касается директив file_uploads, uploads_max_filesize, upload_tmp_dir и post_max_size, которые влияют на возможности РНР, связанные с загрузкой файпов. Более подробное описание этих директив содержится в руководстве по РНР.Как упоминалось ранее в первом разделе настоящей главы, РНР позволяет загружать файлы из HTML-форм посредством элементов загрузки файлов. Пр (more…)

Tags: , ,

Related posts

Из соображений безопасности

Если файл загружен успешно, он должен быть перемешен из его текущего расположения (временного каталога) в место постоянного размещения. Если файл не был перемещен, он будет удален по окончании выполнения РНР-сценария.
Из соображений безопасности, прежде чем перемещать файл из временного каталога в новый, должна быть вызвана функция is_uploaded_f ile О для подтверждения того, что файл действительно был загружен с помощью РНР. После того, как загрузка подтверждена, с помощью функции move_uploaded_Iile() можно переместить загруженный файл из его текущего расположения в новое. Чтобы переместить файл в каталог назначения, РНР до (more…)

Tags: , ,

Related posts

Усовершенствованные технологии использования форм

В главе 4 были рассмотрены HTML-формы, и было показано, как их использовать для ввода данных в PHP-сценарий. В этой главе делается небольшое отступление от рассмотрения связей типа “HTML-форма/РНР” и вводится набор методов и концепций, которые можно непосредственно применять к PHP-сценариям. В настоящей главе предлагаются пути решения таких задач, как защита данных, передаваемых в HTML-формы (скрытые поля), шифрование и преобразование данных, а также несколько эффективных методов проверки данных, получаемых из форм.
Следует отметить, что эта глава не претендует на полноту освещения проблемы, поскольку (more…)

Tags: , ,

Related posts

Преобразование и кодирование данных

Часто, особенно при передаче данных между РНР и внешними источниками (такими как HTML-формы или базы данных), необходимо кодировать или преобразовать данные в требуемый формат. Этот раздел посвящается функциям РНР, предназначенным для этих целей. В отличие от функций addslashes {) и stripslashes (), рассмотренных в предыдущем разделе, эти функции не имеют связи с конфигурационными директивами и поэтому требуют особого внимания.Кодирование и декодирование данных для URL
Часто при пересылке данных формы или в GET-запросе к серверу (то есть, в части URL) необходимо преобразовать символы, имеющие специальное значение в HTTP-запросе {не-алфавитно-цифровые символы), в допустимый формат, В НТТР-эапросах таким форматом является шестнадцатеричный ASCII-код символа, имеющий префикс i. Исключение составляет символ пробела, представляемый знаком +, Предположим, что нужно передать переменную myvar, имеющую значение / value, в другой PHP-сценарий. Приведенный ниже код, используемый для этой цели, работать не будет:
http://myserver.com/myscript,php?myvar=/ value
Для правильной передачи значения myvar потребуется преобразовать его в кодированное представление строки. Поскольку шестнадцатеричным значением символа / является 0×2F, а пробел представляется знаком +, правильный URL-адрес будет иметь вид:
http://myserver.com/myscript.php?myvar=%2F+value
Поскольку преобразовывать вручную каждый не-алфавитно-цифровой символ — весьма утомительное занятие, в РНР имеется функция urlencode (), которая преобразовывает все не-алфавитно-цифровые {за исключением символов -, _ и не имеющих смысла в протоколе HTTP) в кодированную форму. Синтаксис этой функции имеет вид:
urlencode($string)
где $string — это строка для кодирования. Функция возвращает значение строки в закодированном виде. Функция rawurlencode {) подобна urlencode (), но она не преобразует символ пробела в +. Вместо этого она преобразует пробел в шестиадцатеричное значение 0×20 (.20), Когда РНР передает параметры, принятые от HTTP-запроса (независимо от типа запроса—GET, POST или cookie-набор), он автоматически декодирует их в исходные значения. Однако для случаев, когда нужно вручную декодировать эти значения, в РНР предназначена функция urldecode (), имеющая следующий синтаксис:
urldecode($enc_string)
где $enc_string — это закодированная строка для декодирования. Эта функция возвращает декодированную строку. Как и в случае с urlencodef), существует функция rawurldecode (), предназначенная для шестнадцатеричного представления пробела.
кодирование и декодирование двоичных данных
При кодировании двоичных данных полезна функция base64_encode (), имеющая следующий синтаксис:
base64_encode(5data)
где $data — данные для кодирования. Функция возвращает данные в переменной $data в формате base64. Аналогично РНР позволяет декодировать принятые в формате base64 данные в исходный формат с помощью функции base64_decode (), синтаксис которой показан ниже:
base64_decode($enc_string);
где $enc_string — строка в формате base64, предназначенная для декодирования. Функция возвращает данные в исходном формате.

Tags: , ,

Related posts

Преобразование в HTML-объекты

Несмотря на то что кодирование данных при передаче между HTML-формами, базами данных и так далее чрезвычайно полезно, в РНР поддерживается несколько более простых (и очень удобных) преобразований. В качестве иллюстрации предположим, что нужно отобразить в браузере следуюотую строку:
<А HREF=”example.php”>Пример НТМЬ-дескрипгора
Хитрость здесь в том, что нужно отобразить эту строку в браузере клиента так, как она выглядит в примере (а не как гиперссылку). Для таких целей, когда нужно отобразить символы, имеющие особое значение в HTML, существуют HTML-объекты. Эти объекты я (more…)

Tags: , ,

Related posts


календарь 2010 г, изготовление квартальных календарей