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

imagecreatefrompng

(PHP 3>= 3.0.13, PHP 4)

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

Описание

resource imagecreatefrompng (string filename)

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

imagecreatefrompng() возвращает пустую строку при ошибке. Также выводит сообщение об ошибке, которое отображается в браузере как разорванная ссылка. Для облегчения отладки следующий пример выведет PNG ошибки:
Пример 1. Обработка ошибки при создании (благодарим vic@zymsys.com)
function 
LoadPNG ($imgname) { $im = @imagecreatefrompng ($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; }


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

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

Пример 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/", система снова станет открытой. Исходя из этого, вам может понадобиться более специализированная проверка: