标头位置信息无法修改


<?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,不要echoprint_r语句放在header('location:.....');<</p>

div class="one_answers"之前>

此错误主要是当我们使用许多时间标头位置时出现的,要避免此错误,您必须使用另一个函数而不是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()

最新更新