1

我有一个简单的页面。当我点击提交按钮时,我有一些 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');

}

我该怎么办?或者我错过了什么?谢谢

4

5 回答 5

1

我想这是因为你把它放在页面上输出之后,但是没有看到你的代码,这只是在黑暗中刺伤。

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

header("Location: index.php");
exit();

另外,请确保将上述内容放在页面上的任何输出之前,否则它将不起作用。

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

于 2012-05-21T09:23:06.050 回答
1

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

也试试这个(从这里

$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
于 2012-05-21T09:27:00.730 回答
0

HTTP 标头“位置”似乎并不总是在所有浏览器上都能正常工作(根据我的经验)。如果您在回显“Location”标头之前已经“回显”了一些 HTML(或文本,等等),则 PHP 函数“标头”将不起作用。

使用此代码:

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

echo $Js_Redirect;
exit();
?>

代替

<?php
header('Location: index.php');
?>
于 2012-05-21T09:22:16.343 回答
0

请记住,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 代码移动到开头(即上面的标记),并且在使用函数<html>之前不要回显任何内容。header()

解决方案2:
如果您在重构代码时遇到问题,那么您需要使用输出缓冲。放在ob_start()您的 php 页面的第一行,并ob_end_flush()ob_end_clean()使用header(). 这有效地缓冲了所有输出,允许您在实际打印任何输出之前调用标头函数。 注意: 请记住始终exitdie()在设置Location标题之后。

于 2012-05-21T09:31:52.017 回答
0
   if(isset($your_set_values)
    {
         header("Location:index.php");
    }

如果它似乎不起作用:-

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

使用 -

error_reporting(E_ALL & ~E_NOTICE);

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

于 2012-05-21T09:24:54.770 回答