注销后必须刷新页面才能获得正确的代码

时间:2013-03-19 13:35:00

标签: php login logout page-refresh

$loggedin = false; 
if ($_SESSION) { //user loggedin
    $loggedin = true;
    ...//get token
}
...
if($loggedin){
echo 'Hi '.$user['name'];
}
else{
echo 'Please log in';
}
...

我想当我退出时,网页会显示“请登录”。但它在/ src / myproject / index 80行中显示“未定义的$ user变量”。刷新页面后,它会显示“请登录”。

这是什么问题?谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

从我的伪代码可以看出,你在$ _SESSION变量中有一些关键字,表示用户已登录。

为了演示,让我们假设您执行类似的操作...在用户登录后,您分配$ _SESSION ['user'] =一组用户信息。其中一个关键是“名字”。

所以,你的代码看起来应该是这样的

$loggedin = false;
if (isset($_SESSION['user'])) {
    $loggedin = true;
}

if ($loggedin) {
    echo "Hi " . $_SESSION['user']['name'];
}
else {
    echo "You are not logged in."
}

请注意,这只是您发布的代码示例的解决方案。为了做到这一点,我建议进行以下更改:

  • 创建一个处理身份验证的类
  • 在该类中创建方法以确定用户是否已登录
  • 创建返回当前登录用户的方法。

这将使您的代码在未来更具可扩展性,可重复使用且更易于遵循。

祝你好运。