使用 isset() 验证用户是否登录了网站


Using isset() to validate whether a user is logged in on a website

使用isset()验证用户是否已登录的好方法,然后在用户注销时使用unset()来销毁变量。

在页面刷新期间挂起的唯一变量类型是$_SESSION变量。现在,虽然您当然可以unset()这些并且下一页将无法看到它(因此您的代码将起作用),但实际上维护具有一组值的变量可能是一个更好的主意。

这将允许更多的自由和灵活性。例如,如果您只是将会话变量用作布尔值(要么存在,要么不存在),则只有开/关选项。

另一方面,如果您在第一页上初始化变量,然后根据需要修改其中的数据,则可以更灵活地执行代码,例如:

$_SESSION['LoggedIn']='fresh'; 
    // user has just opened the page and not logged in
$_SESSION['LoggedIn']='login'; 
    // We have presented the user the login page at least once.
$_SESSION['LoggedIn']='validated'; 
    // User has successfully logged in

使用这种方法,您还可以非常愉快地存储其他信息,例如单击链接的用户,但该页面在显示信息之前需要身份验证。用户当然会被重定向到登录页面,但在后台,我们存储另一个会话变量,该变量等到用户成功登录,然后触发一个事件,将用户重定向回他们最初想要看到的页面。这对用户来说既直观又友好。没有什么比访问网站,登录并被重定向到首页更让我烦恼的了。