如何调查PHP页面重定向不起作用的原因?
有人知道为什么下面的页面没有重定向吗 我要重定向的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 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()
。我有饼干吗?啊!谢谢-没发现!:-)这并不能解决空白问题,事实上,它向代码库中添加了重复的函数(使用不同的名称)。应该正确引用该函数,而不是将其复制到具有其他名称的新位置。感谢您解决了此问题:-)