如何调查PHP页面重定向无法正常工作的原因?

时间:2013-11-06 17:42:13

标签: php redirect

有没有人知道为什么下面的页面没有重定向?

我要重定向的php文件是:

<?php require_once("../includes/db_connection.php"); ?>
<?php require_once("../includes/functions.php"); ?>

<?php 
if (isset($_POST['submit'])) {
} else {
redirect_to("new_subject.php");
}
?> 

函数文件是:

<?php 
function redirect_url($new_location)
{
  header("location:".$new_location);
  exit;
}
?>

我已经删除了db_connection.php文件以查看是否有任何区别,但事实并非如此。

4 个答案:

答案 0 :(得分:3)

除了您调用的函数和函数名称不同(“redirect_to”与“redirect_url”)之外,在进行标题调用之前还有空格。需求和下一个PHP块之间的空格是空格,并且在将空白空间发送到浏览器后将禁止设置标题。

我强烈建议您在调查问题时启用PHP中的错误日志记录并引用错误日志。您会在日志中看到函数调用错误和标题错误。

此外,不必要地打开和关闭PHP标签通常是很差的编码形式。你可以清理它看起来像这样:

<?php
require_once("../includes/db_connection.php");
require_once("../includes/functions.php");

if (!isset($_POST['submit'])) {
    redirect_url("new_subject.php");
}
?>

请注意,您可以在需求和代码之间保持分离以帮助提高可读性,但由于您永远不会退出PHP块,因此您没有空白区域问题。

答案 1 :(得分:1)

功能名称为redirect_url()

所以代码应该是

else {
redirect_url("new_subject.php");
}

答案 2 :(得分:0)

你的函数调用应该是

redirect_url("new_subject.php");

而不是

redirect_to("new_subject.php");

答案 3 :(得分:0)

你可以试试这个,

    <?php 
        if (isset($_POST['submit'])) {
            //some thing do here
          } else {
                redirect_url("new_subject.php");
        }

        function redirect_url($new_location)
        {
            header("location:".$new_location);
            exit;
        }
    ?>