我的php表单不会将页面重定向到其他页面

我的php表单不会将页面重定向到其他页面,php,html,Php,Html,我有一个简单的形式页面。当我点击Submit按钮时,我有一些sql代码,最后我需要将页面重定向到另一个页面(contact.php)。我的sql代码工作正常,存储在数据库中,但它不会重定向到另一个页面(index.php),并显示具有表单的同一页面(contact.php)。 我使用以下代码重定向我的页面: header('Location: index.php'); 我的表单和php代码如下: <form name="contact" action="contact.php"

我有一个简单的形式页面。当我点击Submit按钮时,我有一些sql代码,最后我需要将页面重定向到另一个页面(contact.php)。我的sql代码工作正常,存储在数据库中,但它不会重定向到另一个页面(index.php),并显示具有表单的同一页面(contact.php)。 我使用以下代码重定向我的页面:

header('Location: index.php');
我的表单和php代码如下:

  <form  name="contact" action="contact.php"  id="contact_form" method="post" >
 <input  type="hidden" id="ID" name="ID" value="<?php echo $yid ?>" />

 <textarea  id="Reason" name="Remark" placeholder="Write your Reason here" class="required" cols="10" rows="10"></textarea>


  <input class="button altbutton" type="submit" name="submit" value="submit" />

 </form>

 if (isset($_POST['submit'])) {

       $Remark = @$_POST ['Remark'];
       $ID= @$_POST ['ID'];

$query=" my sql code";
$result = mysql_query($query);

header('Location: index.php');

}

HTTP头“Location”似乎并不总是在所有浏览器上正常工作(根据我的经验)。如果在回显“Location”头之前已经回显了一些HTML(或文本,无论什么),PHP函数“header”将无法工作

使用此代码:

<?php
$Js_Redirect = 
"<script>"+
"top.location = 'index.php';"+
"</script>";

echo $Js_Redirect;
exit();
?>

我想这是因为您将其放在页面上的输出之后,但没有看到您的代码,这只是一种暗中操作

要重定向到新页面,应使用:

header("Location: index.php");
exit();
此外,请确保将上述内容放在页面上的任何输出之前,否则它将无法工作

执行上述操作时,如果您得到一个空页面,则表明出现了问题(请检查错误日志或确保已打开错误报告)

如果它似乎不起作用:-

首先尝试查找是否有任何错误

使用--


如果您没有发现任何错误。。。。请尝试打印您的查询,以及..

在标题之前是否发送了一些html?甚至空白

也试试这个(从)

请记住,在发送任何实际输出之前,必须调用
header()
,无论是通过普通HTML标记、文件中的空行还是从PHP。使用include或require函数或其他文件访问函数读取代码,并在调用header()之前输出空格或空行,这是非常常见的错误。使用单个PHP/HTML文件时也存在同样的问题

<html>
<?php
/* This will give an error. Note the output
 * above, which is before the header() call */
header('Location: http://www.example.com/');
?>

[]


解决方案1:在您的文件中,将PHP代码移到开头(即
标记上方),并且在使用
header()函数之前不要回显任何内容

解决方案2:
如果您在重构代码时遇到困难,那么您需要使用输出缓冲。将
ob\u start()
作为php页面的第一行,在使用
header()之后使用
ob\u end\u flush()
ob\u end\u clean()
。这有效地缓冲了所有输出,这允许您在实际打印任何输出之前调用header函数。
注意:请记住在设置
位置
标题后始终
退出
die()

您当前在哪一页?你确定这是正确的路径吗?你能给我们看更多的代码吗?有没有显示错误?您的
错误报告设置为什么?我已经编辑了我的代码,并添加了我的表单和php代码。@user1328273:why's no“您的示例无法在所有浏览器上正常工作(因为JS很容易关闭)。服务器端重定向(即原始代码)无论浏览器设置如何,都可以工作。是的,也许,如果你使用手机浏览器,我从未见过HTTP位置头不工作的情况。你能详细说明一下吗?是的。使用die()或exit()在头之后。这将使它停止处理此函数之后的任何其他头,可能是稍后发生冲突的另一个头。
   if(isset($your_set_values)
    {
         header("Location:index.php");
    }
error_reporting(E_ALL & ~E_NOTICE);
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
<html>
<?php
/* This will give an error. Note the output
 * above, which is before the header() call */
header('Location: http://www.example.com/');
?>