2011-09-15 46 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,你需要去你的设置并关闭它。

相关问题