我有一个'loginStatus'会话变量在第一次页面加载时被设置。当这个'loginStatus'第一次被设置时,我有一个if/else在浏览器中首次回显'设置'评论。 '第一次设置'永远不会出现!我清除了缓存,我尝试导航到Netbeans开发环境之外的浏览器窗口中的index.php页面 - 无关紧要。就好像会话永久保持在本地主机Web服务器上一样。会话变量已设置
这是第一次加载页面时检测未初始化的“loginStatus”会话变量并仅创建/初始化会话变量一次的代码。
if (isset($_SESSION['loginStatus']))
{
// we get here ONLY if the 'loginStatus' session variable has already been
// created for this user's session.
$_SESSION['loginStatus'] = "loginStatus already set!";
echo '<br />Just set the loginStatus to: ' . $_SESSION['loginStatus'] . '<br /><br />';
}
else
{
// we only get here the first time this is sent by the server
// to the user's browser -- so we need to create the 'loginStatus' session
// variable because the user just came to our site
// and has not yet logged in.
$_SESSION['loginStatus'] = "First-time initialization of loginStatus";
echo '<br />Just set the loginStatus for the first time!<br /><br />';
}
在浏览器窗口中我从来没有看到“只需设置loginStatus首次!”
我在浏览器窗口中看到的所有内容是:“只需将loginStatus设置为:loginStatus已设置即可!”
换句话说 - isset()函数的返回错误真正的第一次我的页面加载!
当我第一次在浏览器中加载页面时,我看到了一个魔术般已经存在的会话变量的理由。
虽然今天晚上我在编写代码的时候多次加载了上述页面,但我的理解是,当您离开最终页面时,会话将被破坏。那么为什么我的$ _SESSION ['loginStatus']变量像一个已经受到欢迎的亲戚一样挂在身边呢?
'的var_dump($ _ SESSION)'在你的页面的顶部,看看它包含什么,然后从那里工作。 – Kenaniah 2012-01-02 05:10:03
@Kenaniah - 我这样做了,看到这个:array 'loginStatus'=>字符串'loginStatus已经设置!' (length = 24) – wantTheBest 2012-01-02 05:15:36
做一个'session_unset(); session_destroy();'清除服务器端的浏览器会话。 – Kenaniah 2012-01-02 05:16:39