<?php
echo $_REQUEST['uname'];
echo $_REQUEST['pass'];
$res= $mysql_query("select * from `sec` where uname='$_REQUEST['uname']' AND `pass`='$_REQUEST['pass']'");
if(mysql_num_rows($res)>0)
{
header('location:home.php')
}
else
{
header('location:index.php')
}
?>
此错误是什么:header information cannot modify...
即使用户名和密码是正确的,它也不会重定向到另一个页面并给出此警告。为什么会出现此错误??
在向浏览器发送任何数据之前,应该完成所有 php 工作。如果您使用自己的代码,则应以这种方式编写代码
<?php
include "action/home.php"; //don't echo anything here
include "view/home.php";
?>
或
如果必须在设置标头信息后重定向,则应使用 javascript 函数重定向为
if(mysql_num_rows($res)>0)
{ ?>
<script type="text/javascript">
window.location="home.php";
<script>
<?
}
在将数据回显到页面后,您无法进行 PHP 标头重定向。
把回声拿出来,它应该可以工作。此外,将分号放在这些标头函数的末尾。
任何输出发送到浏览器后,无法发送标头。您可以在前两行执行此操作。可以使用输出缓冲来解决此问题。
代码的第一行和第二行中删除echo
,不要echo
或print_r
语句放在header('location:.....');
<</p>
此错误主要是当我们使用许多时间标头位置时出现的,要避免此错误,您必须使用另一个函数而不是header('location:home.php')
这是不同的功能。
<meta http-equiv='Refresh' content='0; url=home.php'>
header('location:index.php')
也一样替换为<meta http-equiv='Refresh' content='0; url=index.php'>
某些内容输出到浏览器,您就无法使用header()
,您已经回显了$_REQUEST['uname'];
和$_REQUEST['pass'];
,这就是您的代码爆发的原因。
您有两种可能的解决方案:删除这些echoes
或使用ob_start()