php выполняет оба условия. Как так?

12
FD
На сайте с 12.05.2017
Offline
71
976

Добрый вечер. Столкнулся с ситуацией когда php выполняет оба действия не смотря на условия. Переменная $enc->status получает значение 201 или 404 либо другое. В случае если в переменной есть 201 или 404 значение то должно выводиться соотвественно " Код с картинки введен неверно" - при значении 201, и "Информация по указанному VIN не найдена" если код 404. Если значение переменной не соотвествует этим числам то должен выводиться текст. А проблема вот в чем. Код выводит оба условия, т.е расшифровку значения переменной и под тей текст который выводиться не должен т.к значение переменной соответствует условию.

if ($enc->status == 201 || $enc->status == 404)

{
if ($enc->status == 201) {
echo 'Код с картинки введен неверно';
}
if ($enc->status == 404) {
echo 'Информация по указанному VIN не найдена';
}
else
{

echo'

<h1>Текстекстект</h1>
<p class="lead">ТекстекстектТекстекстектТекстекстектТекстекстектТекстекстект</p>
</div>

</div>
<!-- /.container -->
'; }}

НАКРУТКА INSTAGRAM (https://instagram777.ru) - Смешные цены!
LEOnidUKG
На сайте с 25.11.2006
Offline
1726
#1

Напишите вместо == три раза ===

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
edogs software
На сайте с 15.12.2005
Offline
775
#2
LEOnidUKG:
Напишите вместо == три раза ===

и скорее всего еще надо исправить 201 на '201' и 404 на '404'

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
LEOnidUKG
На сайте с 25.11.2006
Offline
1726
#3
edogs:
и скорее всего еще надо исправить 201 на '201' и 404 на '404'

Ну или делать intval() на статус перед сравнением.

FD
На сайте с 12.05.2017
Offline
71
#4

Оба варианта не работают

---------- Добавлено 10.11.2017 в 22:57 ----------

В случае когда 404 передается в переменную, работает, а когда 201 картина такая же

Arsh
На сайте с 21.03.2007
Offline
199
#5

При значении 201 скрипт так и должен работать.

FD
На сайте с 12.05.2017
Offline
71
#6
Arsh:
При значении 201 скрипт так и должен работать.

Где я поступил не так? буду благодарен за ответ

---------- Добавлено 10.11.2017 в 23:01 ----------

Arsh:
При значении 201 скрипт так и должен работать.

Cам разобрался, Elseif . Спасибо за подсказку

Arsh
На сайте с 21.03.2007
Offline
199
#7
FrancisDarroze:
Cам разобрался

Я на это и рассчитывал)

FD
На сайте с 12.05.2017
Offline
71
#8
Arsh:
Я на это и рассчитывал)

Плин, теперь не выводится то что в Else =)

LeonCrab
На сайте с 30.01.2007
Offline
189
#9

Вам сюда: http://php.net/manual/ru/control-structures.elseif.php

Или, как вариант - замените ваш код на этот:

<?php
switch ($enc->status) {
case 201:
echo 'Код с картинки введен неверно';
break;
case 404:
echo 'Информация по указанному VIN не найдена';
break;
default:
echo '
<h1>Текстекстект</h1>
<p class="lead">ТекстекстектТекстекстектТекстекстектТекстекстектТекстекстект</p>
</div>
</div>
<!-- /.container -->
';
}

Это для случая, если status - число, а не текст

Помощь в создании сайтов на MODX, Laravel, Slim. В личку. Хостинг, которому я доверяю (https://beget.com/p181956).
FD
На сайте с 12.05.2017
Offline
71
#10

В общем теперь не выводится

<h1>Текстекстект</h1>
<p class="lead">ТекстекстектТекстекстектТекстекстектТекстекстектТекстекстект</p>
</div>
</div>
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий