我的代码 -
<?php
$username = $_POST['username'];
$password = $_POST['password'];
require 'database.php';
$q = "SELECT id FROM users WHERE user_name = '$username' AND password = '$password'";
$result = $mysqli->query($q) or die(mysqli_error());
if (mysqli_num_rows($result) == 1) {
setcookie('authorized', 1, 0);
header("Location: index.php");
} else {
header("Location: login.php");
}
?>
警告:无法修改标头信息 - 已在C:\ xampp \ htdocs \ pics \ confirm_login_credentials.php中发送的标头(在C:\ xampp \ htdocs \ pics \ database.php:1处开始输出)第13行
there is no white space and BOM is also ASCI
答案 0 :(得分:2)
output started at C:\xampp\htdocs\pics\database.php:1
这就是你应该寻找任何回应的东西。 (1表示第1行)
答案 1 :(得分:2)
您的database.php
文件正在第1行输出内容。可能是一些空白字符或BOM。
答案 2 :(得分:1)
amanda,即使这个错误在第1行。结尾?&gt; PHP脚本中的标签是可选的。
最好永远不要放入这些内容,这样你就不会在你的结束时获得空格,然后就不能使用header()并获得这个经典的“Headers already sent”错误。
您可以使用headers_sent()函数来防止这种情况,该函数比仅发出header()调用更强大。
if(headers_sent() === false) {
header("Location: myfile.php");
} else {
die('I cant redirect because headers have already been sent');
}
关于您的问题,请检查所有相关文件中<?php
标记之前的空白,最有可能是database.php。
答案 3 :(得分:0)
检查database.php
文件的BOM。它应该是ANCI