За последние 24 часа нас посетили 17497 программистов и 1571 робот. Сейчас ищут 707 программистов ...

PHP session работает некорректно

Тема в разделе "PHP для новичков", создана пользователем German, 9 окт 2018.

  1. German

    German Новичок

    С нами с:
    4 окт 2018
    Сообщения:
    9
    Симпатии:
    0
    Доброе утро, вся надежда на вас, я только начинаю работать с php и mysql и мягко говоря дуб дубом пока в этом всем.
    Сразу замечу что гуглил уже и яндексил тоже, но находит какую то дичь или просто инфу для тех кто уже явно шарит.

    Проблема следующая. объявил session_start() в самом начале скрипта который подключается первым делом ко всем страницам сайта, сделал простую форму регистрации и авторизации с учетом сессии.
    Сессия запоминает пользователя, во всяком случае идентифицирует его как пользователя авторизованного, потому что на страницах где есть код следующего содержания:

    Код (Text):
    1. if( isset($_SESSION['logged_user']) )
    2.         {
    3.             echo 'Вы авторизованы';
    4.         }else
    5.         {
    6.             echo 'Вам нужно авторизоваться';
    7.         }
    Авторизованому пользователю показывается информация первого варианта.

    Но стоит только попытаться использовать суперглобальный массив, как все идет коту под хвост.
    Переменная выводится только на той странице на которой присвоена. И я вообще без понятия в чем может быть проблема.

    Пробовал посмотреть ID сессии, ни чего не выдает, но тогда почему авторизованного пользователя он отличает от не авторизованного я не понимаю.
    Кстати, может я просто не понял как смотреть ID сессии? Я пробовал в боди выводить:

    Код (Text):
    1. <?php
    2. session_id();
    3. ?>
    Правильно или нет?
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.835
    Симпатии:
    651
    Конкретно какой массив и как использовать? Если речь о $_SESSION, то вы же «как-то умудрились» определить logged_user.

    Вообще же суперглобальные массивы могут быть недоступны (кроме $GLOBALS). Также гляньте на ф-цию sеssion_write_close.

    И я бы вам рекомендовал по началу или всегда держаться подальше от штатного механизма сессий, несмотря на его видимую простоту. Костылей, недоделок и неоднозначностей там хватает.
     
  3. SeApps

    SeApps Новичок

    С нами с:
    3 апр 2018
    Сообщения:
    27
    Симпатии:
    1
    А покажите все?
    У вас же в коде тут нету присвоения сессии какого-либо значения