Php 在使用$\u会话之前擦除它好吗?
我在Php 在使用$\u会话之前擦除它好吗?,php,session,Php,Session,我在课程中还是新手 在使用会话之前擦拭会话是否良好 例如: $_SESSION = array(); $_SESSION['id'] = 1; $_SESSION['name'] = 'Someone'; 我在征求你们的意见。 因为我在课程方面没有太多经验 在我笨拙的逻辑中, 也许我会忘记从管理会话注销 和登录到会员会话 因此,来自admin的一些$\u SESSION值可能仍在$\u SESSION数组中 附加: 1.我是管理员用户,还没有从管理员页面注销 2.现在我从
课程中还是新手
在使用会话之前擦拭会话是否良好 例如:
$_SESSION = array();
$_SESSION['id'] = 1;
$_SESSION['name'] = 'Someone';
我在征求你们的意见。因为我在
课程
方面没有太多经验在我笨拙的逻辑中,
也许我会忘记从
管理会话注销
和登录到会员会话
因此,来自admin的一些$\u SESSION
值可能仍在$\u SESSION数组中
附加:
1.我是管理员用户
,还没有从管理员页面
注销
2.现在我从管理页面
转到会员登录页面
我应该在这里做什么?
将管理员
踢到管理员页面
,因为他不是会员?
没有。事实上,这真的很糟糕,您的示例代码将使您的会话变得无用
调用session\u start()
时,系统将为您提供一个空的$\u会话
,或者您将在上一次页面加载时获得保存到$\u session
的数据。有关会话的更多信息,请查看PHP文档:
关于登录和注销:您的注销过程必须销毁识别用户的任何会话数据(可能是他们的ID)。通常这是通过使用unset
,即unset($\u会话['user\u id'))
我无法想象有任何其他方式可以注销用户,如果你提供更多信息,我可能会给你一个更好的答案
关于您的添加,您的身份验证系统似乎需要一些工作。当您已经登录时,您不应该能够访问登录页面(即使是管理员,因为它只是另一个具有更高权限的用户,对吗?)。如果您在登录后手动键入登录url,则它会将您重定向到主页
这是一篇关于这个话题的精彩文章,我应该做些研究!谢谢@HamZa
下面是我的超级基本伪代码身份验证过程:
Does current page require authentication
Yes:
Is the user logged in?
Yes:
Does the user have the correct privilages to view the page?
Yes:
AUTHENTICATED! Show page
No:
Print a message that says something like, "You're in the wrong place amigo"
No:
Redirect to login
No:
Show the page
没有。事实上,这真的很糟糕,您的示例代码将使您的会话变得无用
调用session\u start()
时,系统将为您提供一个空的$\u会话
,或者您将在上一次页面加载时获得保存到$\u session
的数据。有关会话的更多信息,请查看PHP文档:
关于登录和注销:您的注销过程必须销毁识别用户的任何会话数据(可能是他们的ID)。通常这是通过使用unset
,即unset($\u会话['user\u id'))
我无法想象有任何其他方式可以注销用户,如果你提供更多信息,我可能会给你一个更好的答案
关于您的添加,您的身份验证系统似乎需要一些工作。当您已经登录时,您不应该能够访问登录页面(即使是管理员,因为它只是另一个具有更高权限的用户,对吗?)。如果您在登录后手动键入登录url,则它会将您重定向到主页
这是一篇关于这个话题的精彩文章,我应该做些研究!谢谢@HamZa
下面是我的超级基本伪代码身份验证过程:
Does current page require authentication
Yes:
Is the user logged in?
Yes:
Does the user have the correct privilages to view the page?
Yes:
AUTHENTICATED! Show page
No:
Print a message that says something like, "You're in the wrong place amigo"
No:
Redirect to login
No:
Show the page
顺便说一句,我的示例代码有什么问题?为什么可以使我的会话无效?好的,我将尝试编辑我的问题。通过在使用会话之前擦除会话,您将丢失保存的所有信息。会话变量的用途是跨页面加载保存数据准备更新我的问题。我删除了它,这样当有其他用户登录时,会话数组中以前的数据将被系统擦除。@Scramble你搞错了。“另一个用户”==“另一个浏览器”==“另一个会话cookie”==“另一个会话”。你明白了吗?@TheManiac我猜这两条线是一些宝石。我建议两本都读。和。在第二个线程中,有一些非常好的答案,包括一些代码和数学!顺便说一句,我的示例代码有什么问题?为什么可以使我的会话无效?好的,我将尝试编辑我的问题。通过在使用会话之前擦除会话,您将丢失保存的所有信息。会话变量的用途是跨页面加载保存数据准备更新我的问题。我删除了它,这样当有其他用户登录时,会话数组中以前的数据将被系统擦除。@Scramble你搞错了。“另一个用户”==“另一个浏览器”==“另一个会话cookie”==“另一个会话”。你明白了吗?@TheManiac我猜这两条线是一些宝石。我建议两本都读。和。在第二个线程中,有一些非常好的答案,包括一些代码和数学!