我的网站上有一个用户会话。 在登录页面我做:
//mysqli select
if (password_verify($password, $hash)) {
$_SESSION["user"] = $user;
}
所以我只检查每一页:if(!isset($_SESSION["user"])){die();}
我的朋友告诉我,我应该在登录时记录密码,如下:
if (password_verify($password, $hash)) {
$_SESSION["user"] = $user;
$_SESSION["pass"] = $pass; //$pass that user type in login
}
并在每个页面中再次使用会话用户在mysql中进行选择,并检查登录是否有效。
所以我的问题是,我是否需要在每个页面检查mysql中的密码,还是只能在登录时执行一次?
答案 0 :(得分:3)
如果您使用Session登录,则无需在所有页面中验证密码,因为会话变量只能由您的程序编辑,另一方面如果您使用Cookie来保存用户和密码,那么您可能需要检查所有页面,因为用户可以更改Cookies。
但是,如果您使用会话变量,并且您可以从管理面板中删除该用户或锁定其帐户访问权限,并且如果用户在他将继续访问之前已登录。因此,您还必须检查会话中保存的用户名和密码是否仍然有效。
答案 1 :(得分:3)
没有任何意义。
现在,如果您在登录时在会话中存储相同的密码,您将在每个页面获得密码匹配,因为密码在会话中,将相同,直到会话将过期,并且session expire用户应该只进入登录页面。
这可能会影响表现。