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

imagecreatefromjpeg

(PHP 3>= 3.0.16, PHP 4)

imagecreatefromjpeg - создаёт новое изображение из файла или URL.

Описание

resource imagecreatefromjpeg (string filename)

imagecreatefromjpeg() возвращает идентификатор изображения, полученного из данного файла filename.

imagecreatefromjpeg() возвращает пустую строку при ошибке. Также выводит сообщение об ошибке, которое отображается в браузере как разорванная ссылка. Для облегчения отладки следующий пример выведет JPEG ошибки:
Пример 1. Обработка ошибки при создании (благодарим vic@zymsys.com)
function 
LoadJpeg ($imgname) { $im = @imagecreatefromjpeg ($imgname); /* попытка открыть 
*/ if (!$im) { /* проверить, удачно ли */ $im = imagecreate (150, 30); /* создать 
пустое изображение */ $bgc = imagecolorallocate ($im, 255, 255, 255); $tc = imagecolorallocate 
($im, 0, 0, 0); imagefilledrectangle ($im, 0, 0, 150, 30, $bgc); /* вывести errmsg 
*/ imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc); } return $im; }


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

Безопасность файловой системы

Пример 4-3. Более безопасная проверка имени файла
<?php // Удалить файл с жёсткого диске, доступ к которому имеет 
пользователь РНР. $username = $_SERVER['REMOTE_USER']; // использование механизма 
аутентификации $homedir = "/home/$username"; $file_to_delete = basename("$userfile"); 
// вырезать пути unlink ($homedir/$file_to_delete); $fp = fopen("/home/logging/filedelete.log","+a"); 
//log удаление $logstring = "$username $homedir $file_to_delete"; fputs ($fp, 
$logstring); fclose($fp); echo "$file_to_delete has been deleted!"; ?>

Однако и здесь не без недостатков. Если ваша система аутентификации разрешает пользователям создавать свои собственные пользовательские login'ы и пользователь выберет логин "../etc/", система снова станет открытой. Исходя из этого, вам может понадобиться более специализированная проверка: