Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调查PHP页面重定向不起作用的原因?_Php_Redirect - Fatal编程技术网

如何调查PHP页面重定向不起作用的原因?

如何调查PHP页面重定向不起作用的原因?,php,redirect,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文件是:

<?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文件,看看这是否有什么不同,但是没有。您的函数调用应该是

redirect_url("new_subject.php");
else {
redirect_url("new_subject.php");
}
而不是

redirect_to("new_subject.php");

除了您调用的函数和您拥有的函数名不同(“重定向到”与“重定向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");
}
?>


请注意,您可以在requires和代码之间保持分隔,以帮助提高可读性,但由于您从未退出PHP块,因此不会出现空白问题。

函数名为
重定向\u url()

所以代码应该是

redirect_url("new_subject.php");
else {
redirect_url("new_subject.php");
}
你可以试试这个

    <?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;
        }
    ?> 


函数名实际上是
redirect\u url()
,但在代码中调用的是(未定义的)函数
redirect\u to()
。我有饼干吗?啊!谢谢-没发现!:-)这并不能解决空白问题,事实上,它向代码库中添加了重复的函数(使用不同的名称)。应该正确引用该函数,而不是将其复制到具有其他名称的新位置。感谢您解决了此问题:-)