我的数据库更改了会话变量后遇到会话变量问题,当我按下后退按钮但是在数据库上时,它没有更新新的会话变量,它已经更新但不在网页上,我必须重新登录才能看到新变量。
以及如何使用session_regenerate_id?
答案 0 :(得分:1)
从php.net复制:
<?php
session_start();
$old_sessionid = session_id();
session_regenerate_id();
$new_sessionid = session_id();
echo "Old Session: $old_sessionid<br />";
echo "New Session: $new_sessionid<br />";
print_r($_SESSION);
?>
答案 1 :(得分:1)
当用户按下后退按钮时,他们的浏览器通常会显示缓存页面,而不是重新请求页面,因此很可能是您的问题来自哪里。
您通过调用它来使用session_regenerate_id ...并且将为用户提供新的会话ID,并且他们的会话将被转移到该ID,如果您将True
作为参数传递,会话将被清除也是。它通常用于阻止session fixation attacks
答案 2 :(得分:0)
请确保您已将以下声明置于脚本之上,否则将不会处理任何会话:
session_start();