【发布时间】:2014-05-05 16:56:24
【问题描述】:
这是一个使用cookies作为密码的脚本.....在本地主机上运行它会显示通知
未定义索引:用户
未定义索引:通过
代码如下:
<html>
<body>
<form action="<?php echo ($self); ?>" method="post">
Please enter your details for access :<br>
Name:<input type="text" name="user" size="10">
Password:<input type="text" name="pass" size="10"><br><br>
<input type="submit" value="Log in">
</form>
</body>
</html>
<?php
$user=$_POST['user'];
$pass=$_POST['pass'];
$self=$_SERVER['PHP_SELF'];
if(($user!=null)and ($pass!=null))
{
if($pass=="mypassword")
{
setcookie("checkpass","okkay");
header("Location:loggedin.php");
exit();
}
else
{
setcookie("checkpass");
}
}
?>
【问题讨论】:
-
不要在 cookie 中存储密码或用户名,这真的很糟糕..
-
他没有将密码存储在cookie中,而是设置了一个cookie来检查密码是否有效,仍然是错误的但没有存储密码那么糟糕
-
旁注:您在带有 cookie 的标头之前输出。
-
使用
$user = (isset($_POST['user'])?($_POST['user']):(die ("missing POST argument user"));并与密码相同...如果 $_POST 表示索引未定义,您将不会从 $_POST 获得任何信息。 -
用上面的代码替换它显示-解析错误:语法错误,意外';'