我正在設計一個登錄系統作爲一個個人項目,我試圖存儲用戶的電子郵件和密碼哈希(我應該存儲純文本密碼嗎?)在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