在POST到同一页面后,为什么我的SESSION数据没有更新?

时间:2011-03-08 05:42:24

标签: php session post redirect header

我想弄清楚为什么会这样。我将让用户成为@ login.php并输入他们的登录凭据,如下面的面板(1)所示。

然后,在成功将其凭据与存储在数据库中的凭据匹配后,我将分配一个$ _SESSION ['username']变量,并将页面POST给自己(action =“”),我将提醒用户已设置会话变量。

理想情况下,我不想提醒用户已设置会话变量,只需在点击登录后立即自动开始使用该$ _SESSION ['username']变量(并成功验证)。 / p>

我怎样才能做到这一点?我试图通过放置像

这样的东西搞乱标题
<? if (isset($_SESSION['username'])) {
header("Location: index.php");
exit();
?>

但是我一直收到一个标题已经发送错误,因为一些输出(比如我的CSS,JS文件)位于login.php页面上的表单验证逻辑之前。

problem

1 个答案:

答案 0 :(得分:2)

操作顺序。

将会话创建和有效性测试检查放在页面的最顶部,以便页面的其余部分可以判断是否存在$_SESSION['username']

(您可能正在尝试在内容区域内验证它们,因此您的“yay”或“ney”消息会显示在文档的所需部分。漂亮,是的,但整个上半部分页面无法看到它[可能]是有效的会话。)