大家好!我知道这听起来很愚蠢,但我想用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?']
?