#php #session
#php #сессия
Вопрос:
У меня есть проект с несколькими разными страницами в нем. Раньше это работало довольно хорошо, пока я не обновил свою версию PHP. Я не помню предыдущую версию, но текущая версия: 5.6.0beta4.
Я могу успешно войти в систему и просмотреть страницу индекса. Я также могу перейти на 2-ю страницу отсюда, но когда я пытаюсь перенаправить 3-ю страницу (это может быть индексная страница или любой другой пейджер), все мои значения сеанса уничтожаются. Вот как я все делаю;
Вход;
session_start();
session_regenerate_id();
$_SESSION["user"] = "testuser";
$_SESSION["enter"] = true;
$_SESSION["id"] = 1;
header("location: index.php");
exit();
На других страницах я использую формы для перенаправления;
<table border=0>
<form method=post action=second.php name=second>
<input type=submit value="2nd Page">
</form><br/>
<form method=post action=third.php name=third>
<input type=submit value="3rd Page">
</form>
</table>
Все мои страницы начинаются с session_start() и session_regenerate_id() .
Любая помощь приветствуется. Я провел некоторые исследования в Интернете, но вся информация основана на отсутствии функции session_start(). Я считаю, что моя проблема больше связана с php.ini. Как я уже сказал, эта система сеансов работала отлично. Вот мои значения сеанса;
session.auto_start Выкл.Выкл . сессия.cache_expire 180 180 сессия.cache_limiter nocache сессия nocache.cookie_domain нет значения нет значения сессия.cookie_httponly Выкл.Выкл .сессия.cookie_lifetime 1440 1440 сессия.cookie_path / / session.cookie_secure Выкл.Выкл . сессия.entropy_file /dev/urandom /dev/urandom сессия.entropy_length 32 32 сессия.gc_divisor 1000 1000 сессия.gc_maxlifetime 1440 1440 сессия.gc_probability 1 1 сессия.hash_bits_per_character 5 5 сессия.hash_function 0 0 session.name PHPSESSID PHPSESSID session.refer_check нет значения нет значения session.save_handler files files session.save_path /var / lib/php5 / var / lib / php5 сессия.serialize_handler php php сессия.upload_progress.очистка при сеансе.upload_progress.включено при сеансе.upload_progress.Частота 1% 1% session.upload_progress.min_freq 1 1 session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS session.upload_progress.prefix upload_progress_ upload_progress_ сессия.use_cookies на сеансе.use_only_cookies на сеансе.use_strict_mode выкл. Выкл . сессия.use_trans_sid 0 0
Комментарии:
1. Почему вы всегда используете session_regenerate_id() ? Для начала попробуйте обойтись без этих вызовов. И не забывайте, что вы используете бета-версию, это тоже может быть проблемой.
2. И есть ли у вас
session_start()
на указанных других страницах?3. Я попробую без сеанса восстановить идентификатор и поделиться результатами. Он использовался из соображений безопасности. Да, у меня также есть начало сеанса в начале каждого файла php.
4. Я пытался удалить session_regenerate_id() со страниц, но это не имеет никакого эффекта
5. это было исправлено случайным образом, я считаю, что это была проблема с бета-версией PHP.