<?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);
答案 0 :(得分:2)
cookie将使用标头进行传输。因此,setcookie()
只是header()
的包装,如果该脚本中已有输出,则无法使用。
我猜输出是在mysql_*
标记开放之前由<?php
函数或空格|内容触发的错误消息
答案 1 :(得分:1)
我有类似的问题。原因是你可能在php标签之前有一个空格。移动空间你很高兴。
答案 2 :(得分:0)
$ user = mysql_real_escape_string($ _ POST ['login']);
到
ob_start();
$ user = mysql_real_escape_string($ _ POST ['login']);
答案 3 :(得分:0)
你必须检查一些事情。但我认为你的PHP脚本没问题。
检查并开心