2015-04-21 3 views
0

Когда я использую || (OR) в моем заявлении if ниже. Я заканчиваю бесконечный цикл.уровень начального уровня: || (OR)

Для простоты здесь является var_dump:

$auth "0" 
$id "2" 
$enabled "1" 
$page "auth-login.php" 

Если критерии ниже не будут выполнены в заявлении, если затем он передает пользователю авторизовать-login.php (это не применимо если текущая $ страница - auth-login.php и auth-login-validate.php).

Заявление без || (OR) Оператор: Нападающие авторизовать-login.php, как задумано, но также должны включать в себя аутентификации-логин-validate.php

if ($auth == '0' && $id != '1' && $enabled == '1' && $page != 'auth-login.php') { 

header('Refresh: 0; URL=auth-login.php'); 
die(); 

} 

Заявление с || (OR): переходите к auth-login.php бесконечно в цикле.

if ($auth == '0' && $id != '1' && $enabled == '1' && $page != 'auth-login.php' || $auth == '0' && $id != '1' && $enabled == '1' && $page != 'auth-login-validate.php') { 

header('Refresh: 0; URL=auth-login.php'); 
die(); 

} 
+2

Таким образом, вы по существу имеете 'if (true) перенаправление на ту же страницу' с' $ auth == 0' по умолчанию, и пользователь уже находится в режиме auth- login.php? При использовании '||' в более длинном, если, как правило, разумно использовать paranthesis – kero

+0

, спасибо, позвольте мне попробовать, извините за вопрос начального уровня – michelle

+0

Нет проблем. Кстати, я просто понял, что у вас уже есть '$ auth == 0' в этом случае - так что, возможно, вы пытаетесь сделать что-то вроде' if (($ id! = 1 && .. && ..) || ($ auth == 0)) '? Мне непонятно, когда вы хотите быть в if и когда не – kero

ответ

1

Будет некоторая ошибка, связанная с приоритетом. Обязательно поместите круглые скобки, где вы намерены инкапсулировать части «ИЛИ».

+0

* Будет * Похоже, вы не на 100% уверены в себе! * некоторая ошибка, связанная с приоритетом * некоторые? Значит, вы даже не знаете, где и какие операторы? Поэтому я думаю, что вы можете улучшить качество своего сообщения, указав, где и почему происходит ошибка. – Rizier123

+0

(a && b && c && d) || (a && b && c && e) <=> a && b && c && (d || e) Надеюсь, что это поможет – Charles

Смежные вопросы