- Регистрация
- 03.03.2005
- Сообщения
- 1 745
Моя 2-я статья: register_globals=oN? Вы в опасности!
А как-же вечная фраза "так легче", ну согласитесь что нам совсем не жалко 10 переменных на компе у которого 2 гиги оперативки(приблизительно столько на современных серверах)...Но давайте вдумаемся, зачем нам «загрязнять» массив $GLOBALS? Для этого у нас есть специальные массивы, хранящие данные, переданные методами GET (массив $_GET) и POST (массив $_POST).
error_reporting(E_ALL);
<?
error_reporting(E_ALL);
if($_POST['login']=='login'&&$_POST['pass']=='pass')
{
$valid_user=TRUE; // Юзер корректный
}
if($valid_user)
{
echo 'Здравствуйте, пользователь';
}
else echo 'В доступе отказано'
?>
аВ доступе отказано
Из этих строчек явно видно что переменная valid_user может содержать все что угодно...Notice: Undefined index: login in PHPDocument1 on line 3
Notice: Undefined variable: valid_user in PHPDocument1 on line 8
В доступе отказано
Ну у меня рулит фраза "так логичнее".А как-же вечная фраза "так легче"
Это заведомо гиблый стиль, для того люди ищут наиболее выгодные решения в плане производительности, тем более, это все не страшно, если у тебя посещаемость небольшая, но потом могут возникнуть серьезные проблемы.ну согласитесь что нам совсем не жалко 10 переменных на компе у которого 2 гиги оперативки(приблизительно столько на современных серверах)...
Да, ты этим сообщаешь интерпретатору PHP выводить все ошибки и примечания.error_reporting(E_ALL);
Ну это уже придирка, я же написал самый простой вариант, который наглядно раскрывает суть проблемы, а не рабочую идентификациюИз этих строчек явно видно что переменная valid_user может содержать все что угодно...Кстати тут же еще есть но если пользователь попал на эту страницу не нажаием кнопки то не зачем ему писать что отказано в доступе...
Да все верно, но логичнее:сделав в начале файла маленькую запись $valid_user=NULL; мы избавляемся от этого...
<?if($_POST['login']=='login'&&$_POST['pass']=='pass')
{
$valid_user=TRUE; // Юзер корректный
}
else $valid_user=FALSE;
if($valid_user)
{
echo 'Здравствуйте, пользователь';
}
else echo 'В доступе отказано';
?>
Этот режим создан не для постоянного использования, а для отлова ошибок и других спорных моментов.Я не вижу не достаточно доводов для отказа от error_reporting(E_ALL);
Хм, ну ладно, у тебя свое мнение у меня свое, давай подождем, как кто-нибудь выскажется по этому поводу.Именно это я и хотел отметить в статье, тема раскрыта односторонне!!..
И не учитывает альтернативные способы решения проблеммы!!!
extract($_GET, EXTR_SKIP);
extract($_POST, EXTR_OVERWRITE);