П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 176211 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 73054 раз(а).

Учебник HTML.
Просмотров 72724 раз(а).

Руководство по PHP5.
Просмотров 43479 раз(а).

Хостинг через призму DNS.
Просмотров 50070 раз(а).

Подборка текстов стандартных документов.
Просмотров 43711 раз(а).

Учебник PHP - Самоучитель
Просмотров 50025 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 50391 раз(а).

Внешние атаки...
Просмотров 40797 раз(а).

Учебник PHP.
Просмотров 35920 раз(а).

SSI в примерах.
Просмотров 26988 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Руководство по PHP
Пред. След.

is_uploaded_file

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

is_uploaded_file -- Определяет, был ли файл загружен при помощи HTTP POST

Описание

bool is_uploaded_file ( string filename )

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

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

Для правильной работы, функции is_uploaded_file() нужен аргумент вида $_FILES['userfile']['tmp_name'], - имя закачиваемого файла на клиентской машине $_FILES['userfile']['name'] не подходит.

Пример 1. Пример использования функции is_uploaded_file()

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo
"File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
   echo
"Displaying contents\n";
   
readfile($_FILES['userfile']['tmp_name']);
} else {
   echo
"Possible file upload attack: ";
   echo
"filename '". $_FILES['userfile']['tmp_name'] . "'.";
}

?>

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

Замечание: Следующий пример не работает в версиях PHP выше 4.0.2. Он полагается на внутреннюю функциональность PHP, которая изменилась после этой версии.

Пример 2. Пример использования функции is_uploaded_file()

<?php
/* Самодельная проверка на то, является ли файл загруженным. */
function is_uploaded_file($filename)
{
    if (!
$tmp_file = get_cfg_var('upload_tmp_dir')) {
        
$tmp_file = dirname(tempnam('', ''));
    }
    
$tmp_file .= '/' . basename($filename);
    
/* У пользователя может быть завершающий слеш в 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
"Возможна атака загрузки файла: имя файла - '$HTTP_POST_FILES[userfile]'.";
}
?>

См. также описание функции move_uploaded_file() и раздел Загрузка файлов на сервер для получения простых примеров использования.



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru