我收到關於「頭已經發送」錯誤,當我成功登錄到頁面中。
這裏是我的代碼與登錄交易:
<?php
include("config.php");
$eUsername = $_POST['username'];
$ePassword = $_POST['password'];
$con = mysql_connect("localhost","MY_USERNAME","MY_PASSWORD");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("forum", $con);
$result = mysql_query("SELECT * FROM members WHERE username = '$eUsername'");
while($row = mysql_fetch_array($result))
{
if ($ePassword==$row['password']) {
echo "Correct";
setcookie("loggedIn", "true", time()+1000000000);
setcookie("logUsername", "$eUsername", time()+100000000);
setcookie("logPassword", "$ePassword", time()+100000000);
}
else {
echo "Incorrect username/password. Please try again.";
}
}
mysql_close($con);
if ($_COOKIE['loggedIn']=="true") {
$curURL=basename($_SERVER['SCRIPT_NAME']);
echo "You are already logged in. <a href='$curURL?lo=true'>Log out?</a>";
}
echo "<br /><br />";
print_r($_COOKIE);
?>
所以基本上這是什麼做的是,如果你用正確的信息登錄,將設置3個曲奇,您的用戶名,密碼和一個檢查另外兩個。
但是當我做成功登錄,我得到這些錯誤:
警告:不能更改頭信息 - 頭已經發出(輸出開始/home/scott/web/forum/index.php :18)in /home/scott/web/forum/index.php on line 19
警告:無法修改標頭信息 - 已經發送的標頭(在/home/scott/web/forum/index.php處開始輸出:18)/home/scott/web/forum/index.php在線20
警告:不能更改頭信息 - 頭已經SE NT在/home/scott/web/forum/index.php(輸出開始/home/scott/web/forum/index.php:18)第21行
我在做什麼錯?
首先,我希望你喜歡SQL注入,因爲你已經有了它。其次,你應該哈希你的密碼。 – Kalium 2010-07-06 23:06:27
刪除了SQL相關標籤,因爲標頭僅限於HTTP。 – 2010-07-06 23:10:54
更不用說將實際密碼存儲在數據庫及其cookie中。有史以來最差的安全性。 – animuson 2010-07-06 23:11:03