Проблема с "ИЛИ"

TRV23RUS

Новичок
Проблема с "ИЛИ"

Имеем вот такой код.
if($sort!='id' || 'operation' || 'rooms' || 'type' || 'etazh' || 'adres' || 'pl' || 'describe' || 'photo' || 'hot' || 'price' || 'foto' || 'date')
{echo '<p><b>Вы задали недопустимый запрос</b><p><br>Если вы считаете, что это ошибка обратитесь к разработчику.';
exit; }

И вот он при значении $sort='id' всё равно выдаёт что недопустимый запрос. И так же при любом другом значении..
Понимаю что где то напортачил. Видать заработался. Может скажет кто?

-~{}~ 20.07.05 21:36:

Или вот так надо было сделать?
if($sort!='id' || $sort!='operation' || $sort!='rooms' и т.д. ?
Сейчас так попробую..

-~{}~ 20.07.05 21:40:

Не-а.. не получается - тоже самое выдает.
Кто чо посоветует? Где напортачил?
 

Кром

Новичок
Пиши так:
PHP:
<?

$sort_arr = array('id','operation','rooms','type','etazh','adres','pl','describe','photo','hot','price','foto','date');
$sort = 'id';

if(!in_array($sort,$sort_arr))
{
	echo '<p><b>Вы задали недопустимый запрос</b><p><br>Если вы считаете, что это ошибка обратитесь к разработчику.';
	exit; 
}

?>
И будет тебе счастье.
 

TRV23RUS

Новичок
Спасибо, но я честно говоря затрудняюсь понять как это однозначно отрабатывает.
А в моём примере неужели нельзя сделать, что бы работало?
По логике вроде должно, хотя у пхп может логика с моей не совпадать. :)
 

rotoZOOM

ACM maniac
Давай посмотрим, что ты написал:
PHP:
f($sort!='id' || $sort!='operation' || $sort!='rooms' и т.д.
Если $sort не равен 'id' ИЛИ $sort не равен 'operation' и т.д.
Таким образом чему бы у тебя не равнялся $sort условие выполнится всегда.
 

TRV23RUS

Новичок
rotoZOOM
"Таким образом чему бы у тебя не равнялся $sort условие выполнится всегда."

А мне кажется ты ошибаешься. Если у меня $sort будет иметь значение 'id', то он как раз и не выполнит условие а проскочит далее. Что мне и нужно.. Пропустить только определенные значения.
 

baev

‹°°¬•
Команда форума
А в моём примере неужели нельзя сделать, что бы работало?
-- можно.
Нужно просто '!' за скобки вынести.

-~{}~ 21.07.05 09:36:

как раз и не выполнит условие а проскочит далее. Что мне и нужно..
не-а
если "проскочит далее", то выполнится условие, что $sort!='operation'
 

TRV23RUS

Новичок
baev
о-о-о... точно-о.. так, мужики, спасибо... сейчас попробую..

-~{}~ 21.07.05 09:45:

rotoZOOM
Вот это я пропарил.. Ты прав..
А как за скобки то вынести?
Что то вроде-
if ($sort !=('id' || 'operation'))

так что ли? а синтаксис такой подойдет?
 

TRV23RUS

Новичок
lucas
Спасибо..
Всё сделал как подсказали. Всё получилось. Очень вам признателен парни.
 
Сверху