我在获取简单的会话数据值以在页面重定向后保留问题时出现问题。函数检查通过邮政发送的用户数据,如果在数据库中的匹配值它的会话数据集的价值观和重定向到另一页:页面重定向后会话数据丢失
if ($login_ok) {
//set session data
$_SESSION ['online'] = 1;
$_SESSION ['userid'] = $id;
$_SESSION ['username'] = $name;
//redirect to new page
redirect('start.php');
}
在新的页面代码中的会话数据未设置。简单测试返回空值,就好像会话数据未设置一样:
echo 'Session Login Status: ' . $_SESSION ['online'];
echo 'Session UserID: ' . $_SESSION ['userid'];
echo 'Session Username: ' . $_SESSION ['username'];
用上面的echo语句替换重定向可以正常工作。会话数据是否已设置并且在加载任何页面数据之前激活重定向意味着会话变量未分配?
为了确保活动的会话始终可用,一个包含文件包含以下代码:
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
任何想法是什么问题就在这里?
非常感谢, 千瓦
您是否在start.php测试以评论您的include和write session_start();没有条件? –
@Francezo相同的代码通过相同的包含文件在start.php中运行,即:if(session_status()== PHP_SESSION_NONE){session_start();} } – Kwangle
我的意思是做一个测试。无条件地创建session_start(),或者创建一个echo session_status()。也许session_status没有返回你所期望的。只是为了调试。 –