#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. Рад, что я все равно смог вам помочь!