可能重复:
Warning: Cannot modify header information - headers already sent
Headers already sent by PHP
错误:无法修改标头信息 - 已在C:\ xampp \ htdocs \ GameHutWebsite \ login.php中在线发送的标头(输出从C:\ xampp \ htdocs \ GameHutWebsite \ data \ connection.php:1开始) 21
当用户在登录屏幕中输入正确的用户名和密码以在主页中发送用户时,我收到此错误。这是代码:
<?php
if ($_POST)
{
$dsLogin = $dataobj->validateLogin($_POST["txtUsername"],$_POST["txtPassword"]);
if (mysql_num_rows($dsLogin))
{
$dsUserDetails = mysql_fetch_array($dsLogin);
$_SESSION["UserEmail"] = $dsUserDetails["UserEmail"];
$_SESSION["Username"] = $dsUserDetails["Username"];
$_SESSION["UserTypeId"] = $dsUserDetails["UserTypeId"];
header ("Location: index.php");
}
else
{
$msg = "Invalid Username and Password!";
}
}
?>
连接类:
<?php
class connection
{
function connect($sql)
{
$server = 'localhost';
$myDB = 'gamehutdb';
//connection to the database
$dbhandle = mysql_connect($server, 'root', "")
or die("Couldn't connect to SQL Server $server");
//select a database to work with
$selected = mysql_select_db($myDB)
or die("Couldn't open database $myDB");
//execute the SQL query and return records
$result = mysql_query($sql);
//return result set
return $result;
//close the connection
mysql_close($dbhandle);
}
}
?>
答案 0 :(得分:4)
您已使用
header ("Location: index.php");
在向客户端发送内容(即使用echo或print)之后,请确保在该代码之前没有任何内容发送到客户端。
另一个原因可能是BOM problem。
答案 1 :(得分:2)
这可能是因为您的连接类正在发出某种输出
注释掉“标题”行并运行您的脚本。如果你得到一些输出,那就是原因。
您应该根据是否收到错误有条件地启动“标题”行,至少在您解决问题时是这样。