我有一个非常简单的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表会话进行映射它与用户的会话
希望能有所帮助。