Вопрос по Isset() и Empty().

  • Автор темы Автор темы mit
  • Дата начала Дата начала

mit

Новичок
Вопрос по Isset() и Empty().

Здравствуйте уважаемые эксперты. У меня к вам будет 2 небольших вопроса на которые хотелось бы получить ответ. Первый по функции Isset(). Стоит ли ее использовать в проверках типа
PHP:
$by = "name";
if(isset($_GET["by"]) && in_array($_GET["by"],array("name","property_city","property_rating"))) $by = $_GET["by"];
либо можно обойтись только @, т.е.
PHP:
$by = "name";
if(in_array(@$_GET["by"],array("name","property_city","property_rating"))) $by = $_GET["by"];
И вообще стоит ли использовать Isset() при каждой проверке входных данных?

И вопрос второй. Какая проверка безопаснее
PHP:
if(!empty($var))
либо
PHP:
if(strlen($var)>0)
Заранее спасибо за ответы.
 
Апокалипсис
с точки зрения чего безопаснее?
С точки зрения безопасности. Точно не помню (может и вовсе чушь скажу) но вроде в Empty() была найдена уязвимость. Поэтому вопрос про "что безопаснее" думаю всем понятен.
 
Re: Вопрос по Isset() и Empty().

И вопрос второй. Какая проверка безопаснее
PHP:
if(!empty($var))
либо
PHP:
if(strlen($var)>0)
Заранее спасибо за ответы.
empty не проверяет на длину - на вполне ощутимый '0' она скажет yes, it`s empty. В общем зри в мануал.
Это к тому что приведенные тобой способы не взаимозаменяемые - они проверяют на разные вещи.

-~{}~ 24.03.07 20:03:

Поэтому вопрос про "что безопаснее" думаю всем понятен.
Зря ты так думаешь. Пока ты не озвучишь от чего ты обороняешься никто тебе не скажет насколько хорошо ты это делаешь...
 
Хорошо. Какой тогда конструкцией мне воспользоваться если мне нужно проверить на то чтобы входные данные (например $_GET["var"]) были не пусты? В разных скриптах применяются разные конструкции хотя условия одни и те же (проверка на "непустость" переменной).
 
дай определение слову "не пусты"

-~{}~ 24.03.07 20:39:

в терминах функций Isset() и Empty().
 
Сверху