Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не работает условие
Форумы портала PHP.SU » » Вопросы новичков » Не работает условие

Страниц (1): [1]
 

1. alex.red - 02 Января, 2019 - 15:00:32 - перейти к сообщению
Добрый день!
Хочу чтобы при вводе правильного кода человек попадал на страницу с персональными акциями, а в ином случае возвращался на предыдущую страницу!
Этот код почему-то не работает.
Заранее спасибо!

<?php
$b=$_POST["promo"];
if ($b = "santa"){
header( "Location: http://podarok.ru/promo.html" );
}
else{
echo "Промокод введён неверно";
header( "Location: http://podarok.ru/");
}
?>
2. VadiKO - 02 Января, 2019 - 20:27:57 - перейти к сообщению
index.php

PHP:
скопировать код в буфер обмена
  1. <?
  2. echo '<form name="login" action="/index.php" method="post">
  3.         <div><input type="promo" name="promo" style="width:180px;" required /></div>
  4.         <input type="submit" value="ввод" name="enter">
  5.        
  6.         </form>';
  7.  
  8. if(isset($_POST['enter']))
  9. {
  10. $b=$_POST["promo"];
  11.  
  12. if ($b = "santa"){
  13.  
  14. echo 'ok';
  15. }
  16.  
  17. else{
  18.        
  19. echo 'error';
  20.  
  21. }
  22. }      
  23.  
  24. ?>
3. Мелкий - 02 Января, 2019 - 20:41:12 - перейти к сообщению
alex.red пишет:
if ($b = "santa"){

Операторы сравнения в PHP - == или ===
А у вас написан оператор присваивания.
В этой строке вы сделали буквально следующее:

Так очевидно, почему условие всегда срабатывает?
4. LIME - 06 Января, 2019 - 16:24:22 - перейти к сообщению

привычка писать литералы в начале сравнения помогает выработать привычку обращать внимание на этот нюанс Не понял

 

Powered by ExBB FM 1.0 RC1