当我执行标头重定向时,我正在丢失$ _SESSION中的数据。当我使用调试器完成此操作时,我可以在退出()之前在$ _SESSION中看到所有数据;
Login.php:
...
if($result == 1){
header("Location: /myaccount.php");
session_write_close();
exit();
} else {
header("Location: /login.php?invalid=yes");
exit();
}
然后我在下面的session_start()条件之后放置一个断点,$ _SESSION完全为空。
的 myaccount.php: 的
<?php
if(!isset($_SESSION['user_id'])) { session_start(); }
$docRoot = getenv("DOCUMENT_ROOT");
...
我的会话在哪里?
答案 0 :(得分:7)
确保在session_start();
myaccount.php
答案 1 :(得分:1)
您应该在访问(即读取或写入)session_start()
的每个页面上调用$_SESSION
,并在访问会话数组之前调用它。因此,请务必在两个页面上调用session_start()
。
答案 2 :(得分:1)
是的,不要删除帖子......我的确有同样的问题,这篇帖子让我不由自主地用手掌敲打前额。它解决了问题(我的代码就是,而不是我的愚蠢)。干杯!