define

Статус
В этой теме нельзя размещать новые ответы.

sultan347

Участник
Регистрация
25 Апр 2009
Сообщения
230
Реакции
7
define не может что ли заменять функции, например
PHP:
if ($_FILES['image']['type']=="jpg" OR $_FILES['image']['type']=="JPG") {$type="jpg"; define('IMAGECREATEFROM','ImageCreateFromJPEG',true);}
if ($_FILES['image']['type']=="gif" OR $_FILES['image']['type']=="GIF") {$type="gif"; define('IMAGECREATEFROM','ImageCreateFromGIF',true);}
 
так нельзя делать.

Вот в переменную можно засунуть имя функции и она будет работать, а в константу - нет.
 
так нельзя делать.
Вот в переменную можно засунуть имя функции и она будет работать, а в константу - нет.
очень даже можно, если знать как:
PHP:
<?
define('func','rand');
echo call_user_func(func,0,15);
?>
хотя, с переменными безусловно проще выходит
PHP:
<?
$func='rand';
echo $func(0,15);
?>
 
tostrss хотел сказать что в if нельзя помещаь define, а в define надо помещять результат if
 
tostrss хотел сказать что в if нельзя помещаь define, а в define надо помещять результат if
полагаю, все-таки он хотел сказать именно то, что сказал
и я его пост понимаю так, что нельзя использовать значение константы в виде имени функции.
я показал что это возможно, хоть и не так как для переменных.
Вы же в свою очередь тоже неправы
константу спокойно можно назначать внутри условия
сами проверьте
PHP:
<?
error_reporting(E_ALL);
$qwe=1;
if($qwe==1)
	define('qwe','asd');
else
	define('qwe','123');
echo qwe;
?>
 
может поможет кусок кода
PHP:
$format = strtolower(substr($image_info['mime'], strpos($image_info['mime'], '/')+1));
$CreateFunc = 'imagecreatefrom' .$format;
$src_img = $CreateFunc( $_FILES['fl']['tmp_name'][$i] );
 
нет, не поможет, так как тут нету проверки на неверный mimitype
достаточно, чтобы пользователь попытался загрузить bmp-файл, или что-нибудь вообще, не относящееся к рисункам, и мы получим непредусмотренную ошибку
если и делать такой универсальный код, то хотя бы проверять существование функции
но лучше не стоит писать такой код, ИМХО
 
Ради Бога..."ИМХО "-надо писать очень осторожно...
PHP:
//проверяем майм тип фаила(разные браузеры дают разный май м ,поэтому столько вариаций) 
$TYPE = array(
"JPG"=>"jpeg",
"jpg"=>"jpeg",
"image/JPG"=>"jpeg",
"image/x-JPG"=>"jpeg",
"JPEG"=>"jpeg",
"image/x-JPEG"=>"jpeg",
"image/pJPEG"=>"jpeg",
"image/pjpeg"=>"jpeg",
"image/jpeg"=>"jpeg",
"image/x-jpeg"=>"jpeg",
"image/jpg"=>"jpeg",
"image/x-jpg"=>"jpeg",
"PNG"=>"png",
"png"=>"png",
"image/PNG"=>"png",
"image/png"=>"png",
"image/x-png"=>"png",
"image/x-PNG"=>"png",
"GIF"=>"gif",
"gif"=>"gif",
"image/gif"=>"gif",
"image/x-gif"=>"gif",
"image/GIF"=>"gif",
"image/x-GIF"=>"gif");// допустимые расширения
if(!array_key_exists($image_info['mime'], $TYPE) )
$ERROR.= '<p>Разрешена загрузка  файлов  только с расширениями: gif,png,jpg,jpeg </p>';

и это не панацея..свободно можно хидером отправить любой тип....
100% выход в другом...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху