【发布时间】:2022-01-17 11:36:50
【问题描述】:
不知道为什么这不起作用。代码如下:
if ((isset($_POST['cancel'])) && ($_POST['cancel'] == 'cancel'))
{
header('Location: page1.php');
echo $_POST['cancel'];
}
此输出的cancel 不是重定向页面,而是指向网页。它跳过了重定向。为什么?我怎样才能解决这个问题? page1.php 是与当前页面位于同一文件夹中的真实页面。上面的代码是 php 文件的第一行。之前什么都没有。没有。甚至没有空格。
【问题讨论】:
-
之后不要回显任何内容;执行
exit()来终止脚本。 (发出该标头后,您不应输出任何内容) -
这是因为您已经在此上下文中向浏览器发送了数据,因此
headers have been sent。打开您的error_reporting以在将来获得此答案。 -
@Pekka웃 使用 echo 很好,我怀疑条件不够
-
错误报告已开启。没有错误。如果我取出 echo 语句,那么它仍然会继续处理页面的其余部分。我包含了 echo 语句以显示 if 语句正在执行。
-
@JohnS 试试这个
header('Location: ABSOLUTE_URL_HERE', true, 302);
标签: php