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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Руководство по 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