Функции Язык программирования PHP

is_uploaded_file

(PHP 3>= 3.0.17, PHP 4 >= 4.0.3)

is_uploaded_file - сообщает, был ли файл загружен через HTTP POST.

Описание

bool is_uploaded_file (string filename)

Возвращает TRUE, если файл filename был загружен через HTTP POST. Это помогает убедиться, что злонамеренный пользователь не пытался заставить скрипт работать с файлами, с которыми он работать не должен, например, /etc/passwd.

Этот вид проверки особенно важен, когда есть вероятность того, что некоторые действия с загруженными файлами могут дать доступ к их содержимому пользователю или даже другим пользователям  той же системы.

is_uploaded_file() доступна только в версиях PHP 3 после PHP 3.0.16 и в версиях PHP 4 после 4.0.2. Если вы продолжаете использовать ранние версии, вы можете использовать следующую функцию, которая поможет вам защититься:

Примечание: следующий пример не будет работать в версиях PHP 4 после 4.0.2. Это зависит от внутренней функциональности PHP, которая была изменена после указанной версии.

<?php 
/* Проверка загруженного файла. */ function is_uploaded_file($filename) { if (!$tmp_file 
= get_cfg_var('upload_tmp_dir')) { $tmp_file = dirname(tempnam('', '')); } $tmp_file 
.= '/' . basename($filename); /* User might have trailing slash in php.ini... 
*/ return (ereg_replace('/+', '/', $tmp_file) == $filename); } /* Вот как использовать 
её, поскольку вы также не имеете * move_uploaded_file() в этих старых версиях: 
*/ if (is_uploaded_file($HTTP_POST_FILES['userfile'])) { copy($HTTP_POST_FILES['userfile'], 
"/place/to/put/uploaded/file"); } else { echo "Possible file upload attack: filename 
'$HTTP_POST_FILES[userfile]'."; } ?>

См. также в move_uploaded_file() и в разделе Обработка загрузки файлов пример простого использования.


Назад Оглавление Вперёд
is_readable Вверх is_writable

PHP/FI

PHP появился как развитие другого продукта, PHP/FI. PHP/FI был создан Rasmus'ом Lerdorf'ом в 1995 году, сначала как простой набор Perl-скриптов для отслеживания доступа к его собственному online-резюме. Он назвал этот набор скриптов 'Personal Contents Page Tools'. Поскольку требовалось б́ольшая функциональность, Rasmus написал расширенную реализацию C, которая могла работать с базами данных (БД), и дал пользователям возможность разрабатывать простые динамические Web-приложения. Rasmus решил опубликовать исходный код PHP/FI для широкого доступа, чтобы любой мог использовать, расширять и улучшать его. Найдем точки пересечения графика функции с осями координат Основы электротехники выполнение курсовой работы Различают резонансы в цепях, содержащих только реактивные элементы, к в цепях, которые кроме реактивных элементов содержат сопротивления. Резонансные реактивные двухполюсники можно рассматривать как идеализацию реальных двухполюсников с потерями. Уравнения реактивных двухполюсников значительно проще и легко поддаются анализу в общем виде. При этом можно определить резонансные частоты и установить последовательность их чередования. Рекомендации по анализу резонансных реактивных двухполюсников содержатся в ряде учебников

PHP/FI, Personal Contents Page / Forms Interpreter, имел некоторую основную функциональность того PHP, который известен нам теперь. Он имел Perl-подобные переменные, автоматическую интерпретацию переменных форм и синтаксис, внедрённый в HTML. Сам по себе синтаксис напоминал Perl, хотя и более ограниченный, упрощённый и неполный.

В 1997 году PHP/FI 2.0, вторая версия C-реализации, имел несколько тысяч поклонников по всему миру (ориентировочно), приблизительно 50,000 доменов, на которых он был установлен, что составляло примерно 1% всех доменов Internet. Поскольку множество людей предоставляли блоки кода для этого проекта, он перестал быть проектом одного человека.

PHP/FI 2.0 был официально выпущен только в ноябре 1997 года, после того как просуществовал в основном в виде beta-релизов. Вскоре после этого этого появились первые alphа PHP 3.0.