PHP密码保护的页面cookie


PHP password protected page cookie

我有一个非常简单的PHP密码保护页面。我想添加一个会话cookie,这样浏览器就会保持日志记录(比如说7天)。

这是我当前的代码:

<?php
$password = "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8";
if (sha1($_POST['password']) == $password) {
?>
Password Protected Content
<?php
}
else {
?>
<html>
    <head>
        <title>Login Page</title>
    </head>
    <body>
        <form name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        Password: <input type="password" name="password" class="formpart" />
        <input type="submit" name="Submit" value="Login" class="login-button" />
        </form>
    </body>
</html>
<?php
}
?>

我不知道从哪里开始,所以我真的很感激你的帮助。提前感谢!

请自己看看PHP的这些东西:

  • session_start()
    • 接下来看看这里:如何在PHP中更改会话超时
  • $_SESSION[]-Array

此外,您的代码永远不会跳转到受密码保护的内容块中。

$password = "password";
if (sha1($_POST['password']) == $password) {

假设你输入了正确的密码("密码"),那么if会问:

if 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 equals password.

您正在使用哈希,但这里不需要。

您的需求是一种非常经典的实践。你可以在这里阅读教程:http://www.phpnerds.com/article/using-cookies-in-php/2

注:

  • 将哈希与哈希进行比较
  • 永远不要将纯文本密码保存在cookie中
  • 更安全:不要像教程中那样将散列密码保存在cookie中。只需存储一个会话散列代码,并使用DB表会话进行映射它与用户的会话

希望能有所帮助。