我已將我的託管服務器從Windows更改爲Linux系統。但是,當我運行我的PHP程序,我得到這個錯誤:PHP會話啓動「無法發送會話cookie和緩存限制器」
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/content/p/y/c/francis/html/login/login.php:2) in /home/content/p/y/c/francis/html/login/login.php on line 4
和
這是我的程序代碼:
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
if ($username && $password)
{
$connect = mysql_connect(***,***,***);
mysql_select_db("phploginregister") or die("Couldn't find db");
$query = mysql_query("SELECT * FROM users WHERE username='$username'");
$numrows = mysql_num_rows($query);
if ($numrows != 0)
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
//check to see if they match!
if ($username == $dbusername && md5($password) == $dbpassword)
{
echo "You're in! <a href='member.php'>Click</a> here to enter the member page.";
$_SESSION['username'] = $dbusername;
}
else
echo "Incorrect password";
}
else
die("That user doens't exist!");
}
else
die("Please enter an username and password");
?>
什麼是錯的代碼,因爲它在Windows主機上工作得很好...
你是否在任何地方包含此文件?您需要確保'session_start'之前沒有輸出。您的Windows服務器可能配置了輸出緩衝,這就是爲什麼它沒有給出錯誤。 –
您可能正在處理BOM:http://stackoverflow.com/questions/2558172/utf-8-bom-signature-in-php-files – Quasdunk
已解決!問題是腳本之前的空格/換行符 – francisMi