0

是使用isset()一种很好的方式来验证用户是否已经登录,然后unset()在用户退出时使用来销毁变量。

4

1 回答 1

3

在页面刷新期间唯一会挂起的变量类型是$_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

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

于 2013-09-12T01:00:02.047 回答