ОБСУЖДЕНИЕ

Безопасно так?)

13 сообщений1 просмотровОткрыта
#1
PHP

<?


if(empty($_GET))
{ 

} 

if($go=='test')
{

}


?>




хочу сделать ссылки типа сайт.ру/module.php?go=test

так нормально вообще? не хочется использовать switch
#2
безопасно, но я бы в сторону switch смотрел, чем городить 100500 if (){}
#3
Mobiaaa, Спасибо за совет)
#4
Querderro, код где используется switch() обработается быстрей, чем код где 10050 if()
#5
ЗэК, Поддержу. Да и код менее громоздкий получается. Так к примеру:
PHP

$act = $_GET["act"];
if(isset($_GET["act"])){

if($act=='one'){
print 'one';
}
if($act=='two'){
print 'two';
}
if($act=='three'){
print 'three';
}

}else{
print 'default';
}


К тому же "по теории, не проверял" если ввести в адресную строку что-то вроде (sait.ru/file.php?act= ) то уже не будет работать конструкция, да и если просто ввести параметр который не прописан, не сработает код, ну вернее сработает но нужно еще в if(isset...) прописать инфу. Проще не парится и сделать на switch:
PHP

$act = htmlspecialchars($_GET["act"]);
switch($act){

default:
print 'default';
break;

case 'one':
print 'one';
break;

case 'two':
print 'two';
break;

case 'three':
print 'three';
break;

}

#6
UndeX, Спасибо, передумал использовать if else, смотрю в сторону switch case))
#7
Querderro, Не за что, просто зачем изобретать велосипед.
#8
UndeX, и еще вопрос. все работает, но если не вызван switch - выдает ошибку, не определена $_GET["act"]
Как избавиться, но при этом не отключив показ ошибок?
#9
$do=isset($_GET['do'])?htmlspecialchars($_GET['do']) : null;
switch($do){ ....
#10
Querderro, Убери
PHP
$act = htmlspecialchars($_GET['act'])
и замени
CODE
switch($act)
на
CODE
switch($_GET["act"])

Или же заэкранируй от ошибок переменную $act добавив знак @ перед функцией:
PHP
$act = @htmlspecialchars($_GET['act'])
#11
Ну или так
#12
Не советуй @ никому. Стоит вообще забыть за этот символ в пхп.
#13
Freedom, Это понятно, но бывают места там где к примеру без экранирования не обойтись. Но тут не тот случай, я изначально привел вариант исправления, ну а как говорится @ на крайний случай