Условие. есть две ссылки : index.php?option=1 index.php?option=2 в index.php: PHP: <? ... $option=$_GET['option']; if ($option!=1 OR $option!=2) {header('Location: index.php');} ... ?> Требуется - чтобы файл срабатывал только по двум опциям, а в чистом виде кидал на index.php Результат - что есть опции, что нет опций - проверка заваливается и меня кидает на index.php Чего я спросонья не вижу?
Ты говоришь: "Если оно не равно один, или если не равно два". Но если оно равно один, то оно не может быть равно два! И наоборот. Попробуй, лучше, так: Код (Text): if ($option!="1" AND $option!="2") Мы говорим: "если оно не равно один и не равно два" В кавычки взял, чтобы не было преобразования типа из string в int
PHP: <?php // Берем модуль числа для проверки $option = abs(intval($_GET['option'])); if($option && $option < 2) header("Location: index.php"); ?>
Кстати PHP: <? $option = intval($_GET['option']); switch($option) { case 1: { // ... break; } case 2: { // ... break; } default: header("Location: index.php"); } ?> Так легче будет условия добавлять и их обработку Ну это дело автора.
А если $option меньше нуля или с десятичной частью? Тогда уж if (!ctype_digit($option) OR $option < 1 OR $option > 2) ... А еще нужно проверить на существование через isset
Мать-перемать, точно! После 12-часового рабочего будня проверка "ИЛИ" казалась столь естественной... Спасибо