【问题标题】:php header() function won't redirectphp header() 函数不会重定向
【发布时间】:2012-11-17 04:02:34
【问题描述】:

我正在尝试使用 insert.php 作为操作从表单发布数据。但是,一旦数据发布到数据库,我就无法重定向回 index.php。

我搜索了以下网站以找到答案:

以及关于该主题的十个 stackoverflow 问题。

下面是 insert.php 文件的代码:

<?php 
include 'connect.php';
$id = $_POST['id']; 
$idea = mysql_real_escape_string($_POST['new_idea']); 

if(!$_POST['submit']) {
    echo "Please fill out the form!"; 
    header('Location: index.php'); 
} else {
    mysql_query("INSERT INTO user_idea (`id`, `idea`, `time_created`) VALUES(NULL, '$idea', NULL)") or die(mysql_error()); 
    echo "Idea has been added!"; 
    header('Location: index.php'); 
}?> 

根据我收集的信息,如果之前有文本输出,header() 函数将不会执行。我已经尝试过没有回显“已添加想法!”的此功能;并回显“请填写表格!”;但我仍然没有得到重定向。

提前感谢您的建议。

-MF

【问题讨论】:

  • 标题应该在任何输出之前。
  • 确保您的文件顶部没有空行或空格,或者您需要()或包含()的任何其他文件

标签: php redirect header


【解决方案1】:

不要在 header() 之前打印输出。将数据存储到会话中或通过 URL 传递。 试试这个肯定会对你有所帮助。

【讨论】:

    【解决方案2】:

    试试这个

    <?php 
     include 'connect.php';
     $id = $_POST['id']; 
     $idea = mysql_real_escape_string($_POST['new_idea']); 
    
     if(!$_POST['submit']) {
        $message = "Please fill out the form!"; 
        header('Location: index.php?message='.$message); exit;
     } else {
        mysql_query("INSERT INTO user_idea (`id`, `idea`, `time_created`) VALUES(NULL, '$idea', NULL)") or die(mysql_error()); 
        $message = "Idea has been added!"; 
        header('Location: index.php?message='.$message); exit;
     }?> 
    

    将错误信息传递给index.php并在那里显示。

    【讨论】:

      【解决方案3】:

      来自 PHP documentation

      header() 必须在发送任何实际输出之前调用,可以通过普通 HTML 标记、文件中的空行或 PHP。

      在你的情况下,你在 header() 之前使用 echo

      【讨论】:

      • 这个答案概括了主要问题。使用@diEcho 的回答来解决这个问题。
      【解决方案4】:

      解决方法:在页面顶部使用ob_start()

      其他方法 : 请在页面中&lt;?php 开头或?&gt; 之后省略任何空格 并在header()之后使用exit()

      【讨论】:

      • 完美的diEchno。谢谢先生。
      • @Michael 很高兴为您提供帮助 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-17
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-28
      相关资源
      最近更新 更多