- 1
- 2
- 3
- 4
foreach (array('peer_id','port','downloaded','uploaded','left') as $x){
if (!isset($x))
err('', "Нет переменной - ".$x, 1);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+161
foreach (array('peer_id','port','downloaded','uploaded','left') as $x){
if (!isset($x))
err('', "Нет переменной - ".$x, 1);
}
Озадачился. Куда может пропасть $x?
Опять какой-то говноторрент-монитор?
В строке 3 как раз все нормально. Там же имя переменной показывают, а не ее значение. А в $x лежит одна из имен переменных, которые перечислены в array на первой строке.
На правах кэпа:
Косяк в том, что в строке 2 бакса не хватает, и isset проверяет не наличие переменных $peer_id, $port и т.п., а наличие самой переменной $x, которая всегда существует.
Асло, не знаток php. Есть там разница между отсутствием переменной и ее равенству null?
Да хрен его знает... Пути пыхера неисповедимы...
> Есть там разница между отсутствием переменной и ее равенству null?
При обычном обращении, емнип только в ворнинге (если нету - высрет ворнинг и запилит со значением null). А для isSet разницы нет, вернет false и там и там.
А вот за это точно надо убивать ;)
Но все равно сраное говнище: в сочетании с пыхерскими манерами не читать ворнинги и забивать на неинициализированные переменные вполне можно сотворить уязвимость.
Два подключения к БД в одном файле, куча ошибок в логах, насильственное включение register_globals и установка set_time_limit(0). А еще подавление всех ошибок при помощи @. А еще такой проверкой <? if(ini_get('short_open_tag') == 'no') die('text'); ?>
Зачем жить, если шорт-тегов нет? Уйти в небытие, оставив записку с единственным словом: "text"...
Фиг там... вывалить весь исходник в браузер :) Шорт теги же не пашут.