За последние 24 часа нас посетили 22548 программистов и 1278 роботов. Сейчас ищут 773 программиста ...

Не работает условие

Тема в разделе "PHP для новичков", создана пользователем Кубик, 19 май 2017.

  1. Кубик

    Кубик Новичок

    С нами с:
    21 мар 2017
    Сообщения:
    92
    Симпатии:
    0
    Здравствуйте!
    Перепробовал что знал, не могу понять,
    не срабатывает условие if ($Page != 'notice')
    PHP:
    1.     if ($_SESSION['USER_LOGIN_IN']){
    2.         if ($Page != 'notice'){ //Не работает условие, на странице notice уведомления выводятся
    3.             $Num = mysqli_fetch_row(mysqli_query($CONNECT, "SELECT COUNT(`id`) FROM `notice` WHERE `status` = 0 AND `uid` = $_SESSION[USER_ID]"));
    4.             if ($Num[0]){
    5.                 MessageSend(2, 'У Вас есть непрочитанные сообщения. <a href="">Прочитать (<b>'.$Num[0].'</b>)</a>', '', 0);
    6.             }
    7.         }
    8.     }
    9.    
    10.     error_reporting(E_ALL); // Ничего не выдаёт, ошибок нет
    11.     if ($Page == 'notice') // Работает, уведомления только на странице notice
    12.    
     
  2. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    проверяйте значение переменной $Page - условие простое)) срабатывать точно должно)
     
    Кубик нравится это.
  3. Кубик

    Кубик Новичок

    С нами с:
    21 мар 2017
    Сообщения:
    92
    Симпатии:
    0
    PHP:
    1. var_dump($Page);
    2.  
    3. string(6) "notice"
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Судя по тому, что в одном месте работает, а в другом нет, делаю вывод, что проблема не тут, а в первой строке. Запарывается проверка содержимого сессии. Мб вы его не записали. Мб забыли открыть сессию. Мб записали туда что-то, что трактуется как false, покуда используете автоматическое приведение.
     
    Кубик и san4ez нравится это.
  5. Кубик

    Кубик Новичок

    С нами с:
    21 мар 2017
    Сообщения:
    92
    Симпатии:
    0
    там либо 0 если не авторизован, либо 1 если авторизован.
    PHP:
    1. var_dump($_SESSION['USER_LOGIN_IN']);
    2. int(1)
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Перед какой строкой это прописано?
    И что показывает var_dump($Page), поставленный сразу после первой строки, до второго условия?
     
    Кубик нравится это.
  7. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    перед каждым условием поставьте var_dump с переменными из этого условия..
    и все наглядно будет видно что срабатывает а что нет.. и почему)
     
    Кубик нравится это.
  8. Кубик

    Кубик Новичок

    С нами с:
    21 мар 2017
    Сообщения:
    92
    Симпатии:
    0
    PHP:
    1. var_dump($_SESSION['USER_LOGIN_IN']); //int(1)
    2.     if ($_SESSION['USER_LOGIN_IN']){
    3.         var_dump($_SESSION['USER_LOGIN_IN']); //int(1)
    4.         if ($Page != 'notice'){
    --- Добавлено ---
    PHP:
    1. var_dump($Page); //string(6) "notice"
    2.         if ($_SESSION['USER_LOGIN_IN']){
    3.             var_dump($Page); //string(6) "notice"
    4.             if ($Page != 'notice'){
    5.                 var_dump($Page); //ничего, но оповещения выводит
     
  9. Кубик

    Кубик Новичок

    С нами с:
    21 мар 2017
    Сообщения:
    92
    Симпатии:
    0
    PHP:
    1.     function MessageShow(){
    2.             if ($_SESSION['message']) $Message = $_SESSION['message'];
    3.             echo $Message;
    4.             echo '<br />1'.$_SESSION['message'].'1<br />'; // сушествует
    5.             $_SESSION['message'] = array();
    6.             echo '<br />2'.$_SESSION['message'].'2<br />'; // 2Array2, почистилась
    7.         }
    8.         echo '<br />3'.$_SESSION['message'].'3<br />'; // существует
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Ну тогда проверяйте слово notice :) Не стоят ли там, в паре-тройке мест русские буквы. Я про форму.

    А еще осваивайте отладку через отладчик.
     
    Кубик нравится это.
  11. Кубик

    Кубик Новичок

    С нами с:
    21 мар 2017
    Сообщения:
    92
    Симпатии:
    0
    notice перекопировано по несколько раз, буду осваивать отладку