有人知道为什么下面的页面没有重定向吗?
我要重定向的 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_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 块,因此您没有空格问题。
函数名称为redirect_url()
所以代码应该是
else {
redirect_url("new_subject.php");
}
你的函数调用应该是
redirect_url("new_subject.php");
而不是
redirect_to("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;
}
?>