首页 文章

“警告:无法修改 Headers 信息 - 已由[错误]发送的 Headers ”[重复]

提问于
浏览
0

可能重复:“警告:无法修改标头信息 - 已经发送的标头”错误

这是我的代码:

$con = mysql_connect("localhost",$dbuser,$dbpass);
mysql_select_db($dbname, $con);
function crSalt($max = 15) {
        $characterList = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        $i = 0;
        $salt = "";
        while ($i < $max) {
            $salt .= $characterList{mt_rand(0, (strlen($characterList) - 1))};
            $i++;
        }
        return $salt;
}
if ($_POST['username'] && $_POST['password']){
$username=mysql_real_escape_string($_POST['username']);
$password=mysql_real_escape_string($_POST['password']);
$hash = hash("ripemd160", $password);
$x = mysql_fetch_array(mysql_query("SELECT * FROM `accounts` WHERE `Username`='$username'"));
if ($hash == $x['Password']){
$salt = crSalt();
setcookie("xtx_SALT", $salt, time()+3600*74 , "/");
setcookie("xtx_ID", $x['id'], time()+3600*74 , "/");
setcookie("xtx_CRED", hash("ripemd160", $username), time()+3600*74, "/");
mysql_query("UPDATE `accounts` SET `Salt`='$salt' WHERE `Username`='$username'");
}
}
?>
<form action="" method="post">
Username: <input type="text" name="username" />
Password: <input type="password" name="password" />
<input type="submit" value="Login!" /> <form>

我一直在努力解决这些错误:

警告:无法修改 Headers 信息 - 已在/home/xtrosx10/public_html/Secure/Login/index.php上发送的输出(由/home/xtrosx10/public_html/Secure/Login/index.php:5开始输出) 27警告:无法修改 Headers 信息 - 已在/home/xtrosx10/public_html/Secure/Login/index.php上发送的(已从/home/xtrosx10/public_html/Secure/Login/index.php:5开始输出)的 Headers 28警告:无法修改 Headers 信息 - 已在/home/xtrosx10/public_html/Secure/Login/index.php上发送的(已从/home/xtrosx10/public_html/Secure/Login/index.php:5开始输出)的 Headers 29

我不明白为什么我实际上得到这个,因为这里没有一行代码表明应该发送 Headers .

2 回答

  • 2

    setcookie 将尝试修改 Headers ,您需要确保在该点之前没有 echo 或错误/注意/警告部分代码 . 尝试查看错误日志 .

    setcookie:http://php.net/manual/en/function.setcookie.php

  • 0

    输出的可能原因是引发并打印出PHP E_NOTICE 错误 - 可能是在访问不存在的数组索引时 .

    这些警告会告诉您行号,因此请检查是否有可能在那里引发E_NOTICE .

    禁用 display_errors 并启用 log_errors ,或编写自定义错误处理程序以缓冲错误 .

    另一个常见的错误是在文件开头的 <?php 标记之前或文件末尾的 ?> 标记之后的偶然空格 .

相关问题