2011-09-15 45 views
4

我已將我的託管服務器從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主機上工作得很好...

+1

你是否在任何地方包含此文件?您需要確保'session_start'之前沒有輸出。您的Windows服務器可能配置了輸出緩衝,這就是爲什麼它沒有給出錯誤。 –

+3

您可能正在處理BOM:http://stackoverflow.com/questions/2558172/utf-8-bom-signature-in-php-files – Quasdunk

+1

已解決!問題是腳本之前的空格/換行符 – francisMi

回答

2

您擁有國內領先的BOM,開幕<?php標記之前新線或其他空白字符。

的錯誤談論line 2line 4,但在上述session_start()實際的代碼被稱爲上line 3。因此,領先的空白是問題...

-1

我想你應該加上

ob_start();

在你的代碼的 第一

,並在底部添加

ob_get_contents(); ob_end_flush();

因爲

會話發送標頭的服務器,你也添加回聲(這也告訴服務器的HTML與頭)

服務器現在已經到頭所以使用ob_start();ob_end_flush();工作:)

+0

ob_end_flush()就夠了,不需要調用ob_get_contents(),它返回ob內容 –

+0

感謝您的注意:) – SamarLover

4

你得到的錯誤,因爲有一些輸出之前,你已經啓動session_start();這可能是由於您的編輯器在文件的開頭包含了BOM字符。嘗試打開記事本中的代碼,看看在session_start(),(空格)或類似的東西之前是否有任何行並將其刪除。

要修復你的編輯器,如果它在你的文件中添加一個bom,你需要去你的設置並關閉它。

相關問題