我已将我的托管服务器从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