PHP Cookies注册和登录表单


PHP Cookies Registration and Login form

大家好!我知道这听起来很愚蠢,但我想用php做一些简单的注册和登录表单。这不是一个网站,所以它不应该是安全的,我不希望名字和密码永远持续下去。我还想说明我是一个初学者,我只知道php的基础知识。首先,我开始编写html登录表单,然后编写登录的php,以便检查是否有cookie。登记是以后的事。下面是代码:

<?php
setcookie($usr,$pwd,time() + (86400 * 30),'/');
setcookie($pwd,$usr,time() + (86400 * 30),'/');
If(isset($_POST['submitForm'])) {
    $usr = $_POST['usr'];
    $pwd = $_POST['pwd'];
    If(isset($_COOKIE[$usr]) && isset($_COOKIE[$pwd])) {
    }
    else {
        die('User has not been registered or wrong username or password.');
    }
}
?>

正如您所看到的,我试图访问代表"密码"的$pwd和代表"用户名"的$usr变量,两者都使用cookie。

下面是HTML代码:

<form method="POST" action="logged.php" style="text-align: center;">
<h1>Log In Page of Forum</h1>
<input type="text" name="usr" placeholder="Username">
<br/><br/>
<input type="password" name="pwd" placeholder="Password">
<br/><br/>
<input type="submit" name="submitForm" value="Log in">
<br/>
</form>

是的。PHP在文件中

弹出的错误如下:

Notice: Undefined variable: usr in logged.php on line 2
Notice: Undefined variable: pwd in logged.php on line 2
Notice: Undefined variable: pwd in logged.php on line 3
Notice: Undefined variable: usr in logged.php on line 3

但是文本仍然出现:

User has not been registered or wrong username or password.

我这样做是为了更好地理解PHP,而不是在一些严肃的事情上使用它。

谁能告诉我我的代码有什么问题?我先谢谢你。div;)

您的cookie调用错误。您应该为cookie使用固定的名称。您正在使用用户提供的(随机)用户名。

可以:

setcookie('user', $user, ....);

生成user=fred作为cookie ($_COOKIE['user'] => 'fred'),而不是

setcookie($usr, $pwd, ...)

,生成fred=hunter42

因为你不知道用户返回的用户名是什么,你有NO知道在$_COOKIE中使用哪个键来检索他们的用户名。$_COOKIE['ok what is the username?'] ?