0

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

我要重定向的 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

4 回答 4

2

除了您调用的函数和您拥有的函数名称不同(“redirect_to”与“redirect_url”)这一事实之外,在进行标头调用之前您还有空白。requires 和下一个 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 块,因此您不会遇到空白问题。

于 2013-11-06T17:44:43.647 回答
1

函数名称是redirect_url()

所以代码应该是

else {
redirect_url("new_subject.php");
}
于 2013-11-06T17:45:03.337 回答
0

你的函数调用应该是

redirect_url("new_subject.php");

代替

redirect_to("new_subject.php");
于 2013-11-06T17:43:27.673 回答
-1

你可以试试这个

    <?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;
        }
    ?> 
于 2013-11-06T17:46:48.940 回答