0
$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 变量”。在我刷新页面后,它说“请登录”。

这里有什么问题?感谢您的帮助。

4

1 回答 1

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."
}

请记住,这只是您发布的代码示例的解决方案。要正确执行此操作,我建议进行以下更改:

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

这将使您的代码在未来更具可扩展性、可重用性和更容易遵循。

祝你好运。

于 2013-03-19T14:22:00.037 回答