Когда я перемещаюсь между страницами: я теряю свои переменные сеанса

#php #session-variables

#php #переменные сеанса

Вопрос:

У меня есть довольно простая страница PHP, которая проверяет значение имени учетной записи в базе данных. План таков: если данные учетной записи есть, тогда я устанавливаю флаг входа в true, сохраняю пару дополнительных переменных сеанса, а затем перехожу на другую страницу. Моя следующая страница проверяет содержимое переменных сеанса, а затем продолжает представлять некоторые параметры пользователю.

Проблемы: хотя идентификатор сеанса и переменные сеанса устанавливаются на первой странице. Вторая страница не может видеть значения.

Я не вижу, что я здесь делаю не так:

  • Я просмотрел множество примеров кода и т. Д
  • Просмотрел кучу вопросов по StackOverflow: не вижу, где проблемы.

Мой код выглядит следующим образом:

Страница 1: (Я пропустил подключение к БД — я знаю, что это работает) в этом разделе есть несколько операторов If, которые в основном означают, что я добираюсь до этой части только в том случае, если заданы различные поля. Как вы можете видеть из вывода страницы (1) … Я могу видеть все данные, которые мне нужны.

         session_start();
                echo '<p>checking $AN :' . $AN;
                $_SESSION['Status']= true;
                $_SESSION['Acct'] = $AN;
           
           // debug details - echo details to screen to check values

            $check = $_SESSION['Status'];
            $name = $_SESSION['Acct'];

            echo '<br>logon status :' . $check;
            echo '<br>logon Acct : ' . $name;
            echo '<br> session ID = :'. session_id();
            echo '<a href="/sessioncheck.php" target="_self">click here</a>';
  

Вторая страница (/sessionsheck.php )

 $check = $_SESSION['Status'];
$name = $_SESSION['Acct'];

echo '<br>logon status :' . $check;
echo '<br>logon Acct : ' . $name;

echo '<br>session stats : ' . $_SESSION['Status'] . '   ' . $_SESSION['acct'];
echo '<br> session ID :' . session_id();
  

Мой выход таков, как показано здесь:

для страницы 1, прежде чем я нажму на ссылку ….. вывод страницы

Для страницы 2 (сеанс check.php ) Вывод страницы

Я не могу понять, где я ошибся.

  • У меня пока нет кода для закрытия сеанса или «отмены» переменных на любой странице.
  • Нет ничего другого, кроме подключений к базе данных.

Я пытаюсь взаимодействовать с переменными дальше по цепочке… не уверен, нужно ли мне отправлять идентификатор сеанса с запросом страницы, например: /xyz.php?=SessionID
Не уверен, что это помешает цели сохранения фактических данных в сеансе на сервере?

Любая помощь с благодарностью. Заранее благодарю вас

Комментарии:

1. Пожалуйста, обратите внимание: я понимаю, что у меня ошибка inline 14 страница 2 должна гласить: $ _SESSION[‘Acct’] … Это была ошибка, когда я вводил вопрос… по крайней мере, с этим разобрались.

Ответ №1:

Вам нужно вызвать

 session_start();
  

в вашем check.php тоже.

Комментарии:

1. Действительно — Огромное спасибо!!! работает сразу. такой простой промах.

2. Привет, по-видимому, поскольку моя репутация медленно растет (я здесь относительно новичок), она не записывает мои показатели. но когда я это выясню, я обязательно позабочусь о том, чтобы это было сделано. 🙂

3. Не беспокойтесь @user3053941. Рад, что я все равно смог вам помочь!