За последние 24 часа нас посетили 16567 программистов и 1578 роботов. Сейчас ищут 1008 программистов ...

Не работает простой код

Тема в разделе "PHP и базы данных", создана пользователем freytube, 7 янв 2017.

  1. freytube

    freytube Новичок

    С нами с:
    6 янв 2017
    Сообщения:
    18
    Симпатии:
    1
    PHP:
    1.         <?php if (isset($_SESSION['uid'])){
    2.             echo 'Добро пожаловать'." ".$_SESSION['first_name']." ".'<a href="exit.php">Выйти</a>';
    3.         }else{
    4.             $r.='<strong><a href="auth.php">Авторизация</a></strong></p>';
    5.              }
    6.   print $r;?>
    Вот вроде бы простейший код, в котором если юзер авторизирован должен видеть "Добро пожаловать и т.д", а если нет то должен видеть кнопку авторизация. А у меня получается всегда видно "Добро пожаловать", а если я выхожу то просто переменная "firstname" пропадает, это единственное отличие, помогите пожалуйста, заранее спасибо за ответы.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. Jleksern

    Jleksern Новичок

    С нами с:
    6 янв 2017
    Сообщения:
    12
    Симпатии:
    3
    Адрес:
    Земля обетованна
    Включите вывод все ошибок.
    Всегда надо смотреть что приходит в переменную!
    var_dump($_SESSION['uid']);
    P.S. Возможно функция session_start() не была объявлена.
     
    freytube нравится это.
  4. freytube

    freytube Новичок

    С нами с:
    6 янв 2017
    Сообщения:
    18
    Симпатии:
    1
    Сессия объявлена
    --- Добавлено ---
    var_dump выдал string(0) "", можете расшифровать что это значит?)
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    там пусто, дополнительно isset можно добавить empty($_SESSION['uid'])

    PHP:
    1. if( isset($_SESSION['uid']) && empty($_SESSION['uid']) === false )
     
    freytube нравится это.
  6. Jleksern

    Jleksern Новичок

    С нами с:
    6 янв 2017
    Сообщения:
    12
    Симпатии:
    3
    Адрес:
    Земля обетованна
    Это значит что функция isset проверяет на существование переменной.
    А как вы видите переменная существует и имеет тип данных string.
     
    freytube нравится это.
  7. freytube

    freytube Новичок

    С нами с:
    6 янв 2017
    Сообщения:
    18
    Симпатии:
    1
    теперь всегда выдает 2 вариант
     
  8. freytube

    freytube Новичок

    С нами с:
    6 янв 2017
    Сообщения:
    18
    Симпатии:
    1
    В общем я нашел проблему,
    переменная uid почему-то не сохраняется в сессию, вместо нее вставил first_name заработало, но теперь вопрос почему uid не сохранился? а first_name сохранился, хотя там идентичный код. Пойду изучать куки, мне поможет это в решение данного вопроса?
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    session_start() точно есть?
    --- Добавлено ---
    сделай поиск по всему проекту $_SESSION['uid'] и $_SESSION["uid"], может где-то очищается
     
    freytube и denis01 нравится это.