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

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)
Заранее спасибо за ответы.
 

mit

Новичок
Апокалипсис
с точки зрения чего безопаснее?
С точки зрения безопасности. Точно не помню (может и вовсе чушь скажу) но вроде в Empty() была найдена уязвимость. Поэтому вопрос про "что безопаснее" думаю всем понятен.
 

gonza

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

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

-~{}~ 24.03.07 20:03:

Поэтому вопрос про "что безопаснее" думаю всем понятен.
Зря ты так думаешь. Пока ты не озвучишь от чего ты обороняешься никто тебе не скажет насколько хорошо ты это делаешь...
 

mit

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

Фанат

oncle terrible
Команда форума
дай определение слову "не пусты"

-~{}~ 24.03.07 20:39:

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