检查所有限制页面中的密码或仅登录?

时间:2016-05-03 10:57:19

标签: php mysql session

我的网站上有一个用户会话。 在登录页面我做:

//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中的密码,还是只能在登录时执行一次?

2 个答案:

答案 0 :(得分:3)

如果您使用Session登录,则无需在所有页面中验证密码,因为会话变量只能由您的程序编辑,另一方面如果您使用Cookie来保存用户和密码,那么您可能需要检查所有页面,因为用户可以更改Cookies。

但是,如果您使用会话变量,并且您可以从管理面板中删除该用户或锁定其帐户访问权限,并且如果用户在他将继续访问之前已登录。因此,您还必须检查会话中保存的用户名和密码是否仍然有效。

答案 1 :(得分:3)

没有任何意义。

  1. 您可以从登录表单
  2. 获取密码
  3. 你检查它是否正确
  4. 如果正确则允许其他页面
  5. 现在,如果您在登录时在会话中存储相同的密码,您将在每个页面获得密码匹配,因为密码在会话中,将相同,直到会话将过期,并且session expire用户应该只进入登录页面。

    这可能会影响表现。