我正在设计一个登录系统作为一个个人项目,我试图存储用户的电子邮件和密码哈希(我应该存储纯文本密码吗?)在cookie中以便该网站知道用户登录的帐户。setcookie()不工作在if语句
问题是,只要我把我的setcookie();在if语句中的命令,他们停止工作。我知道if语句正在被达到,因为其中的代码是从其中调用的,但它就好像setcookie()被忽略了一样。
下面的代码:
<?php
$email = $_POST[email];
$password = $_POST[password];
$passwordHash = sha1($password);
$dbhost = "localhost";
$dbuser = "user";
$dbpass = "password";
$dbname = "db";
mysql_connect($dbhost,$dbuser,$dbpass)
or die("Error: Failed to connect to database");
mysql_select_db($dbname)
or die("Error: Failed to select databse");
$query = "SELECT * FROM users WHERE user = '$email'";
$sql = mysql_query($query);
while($r = mysql_fetch_array($sql)) {
if($passwordHash == $r[passwordhash]) {
setcookie("Email", $email, time()+3600);
setcookie("PasswordHash", $passwordHash, time()+3600);
echo "added cookie";
}
else {
echo "Incorrect password";
}
}
?>
哪里代码的其余部分? – diagonalbatman 2011-01-09 21:49:22
偏离主题,但您确实需要在SQL语句中所有不受信任的变量周围使用mysql_real_escape_string。否则,您的代码将容易受到SQL注入攻击。 – 2011-01-09 21:50:00
你如何验证cookie的存在? – amosrivera 2011-01-09 21:51:12