标头已发送错误 - Cookie

时间:2013-06-10 06:21:48

标签: php session cookies

<?php
$user = mysql_real_escape_string($_POST['login']);
$password = mysql_real_escape_string(sha1($_POST['password']));
$query = mysql_query("SELECT * FROM  `users` WHERE name =  '$user' AND pass =  '$password' AND privileges = 'superuser'");
$num_rows = mysql_num_rows($query);

if($num_rows == '1') {
$expire = time()*60*60*60*60;
setcookie("user","$user",$expire);
$_SESSION['user'] = $user;
include '/views/admin/admin.php';
}
else {
echo "Username and Password are incorrect! (Maybe you don't have permission!)";
}
?>

它说

  

警告:无法修改标头信息 - 已发送的标头   (输出从Z:\ home \ test1.ru \ www \ views \ admin \ validate.php:1开始)   第9行的Z:\ home \ test1.ru \ www \ views \ admin \ validate.php

第9行是 - setcookie(“用户”,“$ user”,$ expire);

4 个答案:

答案 0 :(得分:2)

HTTP中的

cookie将使用标头进行传输。因此,setcookie()只是header()的包装,如果该脚本中已有输出,则无法使用。

我猜输出是在mysql_*标记开放之前由<?php函数或空格|内容触发的错误消息

答案 1 :(得分:1)

我有类似的问题。原因是你可能在php标签之前有一个空格。移动空间你很高兴。

答案 2 :(得分:0)

使用ob_start();在php标签

之后

$ user = mysql_real_escape_string($ _ POST ['login']);

ob_start();

$ user = mysql_real_escape_string($ _ POST ['login']);

答案 3 :(得分:0)

你必须检查一些事情。但我认为你的PHP脚本没问题。

  • 1.在PHP开始之前,你在这个页面中有一些HTML。 2.您正在使用此网站的模板和模板首先发送标头 你在php标签之前有一些空白区域

检查并开心