当前位置: 首页 > 面试题库 >

PHP标头位置重定向不起作用

尉迟国发
2023-03-14
问题内容

不知道为什么这不起作用。这是代码:

if ((isset($_POST['cancel'])) && ($_POST['cancel'] == 'cancel'))
{
    header('Location: page1.php');
    echo $_POST['cancel'];
}

而不是重定向页面,此输出cancel到网页。它跳过了重定向。为什么?我怎样才能解决这个问题?page1.php是一个实际页面,与当前页面位于同一文件夹中。上面的代码是php文件的第一行。没什么
没有。甚至没有空格。


问题答案:

Pekka在评论中回答了我的问题。他没有发布答案,所以我现在是。exit()标头重定向后使用此方法。由于某种原因,页眉的其余代码在header()方法重定向后仍继续执行。当其余代码执行完后,echo语句将输出到页面。输出到页面后,您将无法使用标题功能进行重定向。为了避免执行其余代码,请使用exit()。谢谢Pekka。

更新:使用Web浏览器Internet Explorer时,我注意到$ _POST
[‘cancel’]不可靠。我不确定为什么会这样,但是我怀疑IE在表单提交中发布了其他变量,特别是变量“取消”已发布。我通过使用’cancel’以外的变量名解决了这个问题。使用exit()和唯一变量名的组合对我来说很有效。



 类似资料:
  • 问题内容: 这是我的档案。我想使其重定向,但是什么也没有发生。为了查看发生了什么,我在标题部分之前添加了回显。 它既不会引发错误,也不会重定向到index.php。怎么了?我已打开/关闭输出缓冲,但是没有任何东西可以使其重定向。我能做什么? 谢谢 问题答案: 我提醒自己,我已经在实际的测试环境中安装了xDebug,在对其进行了搜索之后,我发现了以下站点:http ://bugs.xdebug.or

  • 问题内容: include(‘header.php’); 上面的代码不断给我重定向的问题。错误如下: 警告:无法修改标头信息-已在/ Applications / MAMP / htdocs / testygubbins / OO / test / form中发送的标头(输出始于/Applications/MAMP/htdocs/testygubbins/OO/test/header.php:15

  • 问题内容: 我有此代码,为什么我的标题位置不起作用?它是一种在我的控制面板中更新,编辑和删除某些页面的形式…并且我在form.php的同一文件夹中有一个index.php文件…任何帮助吗?()我试图将标题放在编辑和删除…并且仍然转到表单页面而不是索引… 解决: 使用@ Mihai Iorga代码,我添加了ob_start(); 问题答案: 那是因为您有一个输出: 导致空白行输出。 在发送任何实际输

  • 我已经浪费了很多时间试图从我的AMP页面重定向到其他页面。提交表单时,xhr操作通过POST发送数据来调用php文件。此php文件设置一个新位置,将页面重定向到另一个位置。我在php文件中要重定向的代码如下: 该过程到达实体_并正确解码,我放在头中的url(ulr)是正确的。我从chrome网络分析中得到的响应是下一个(我不明白为什么同一个url存在两个启动器,而且它们不工作)。错误日志: 获取A

  • 我是相当新的PHP,我做了一些研究,并尝试了别人的解决方案,但它不适合我。我想在执行特定代码后将用户重定向到另一个页面。我意识到没有错误信息,网站不会改变。所以我从代码中删除了几乎所有的内容,并将其放入一个小test.php文件中。同样的问题依然存在。 期望:页面应该立即执行php脚本,并将我重定向到“www.w3schools.com”。应该没有错误或其他消息。 结果:页面显示并加载html代码

  • 我有一个简单的问题 使用nginx为6台上游服务器设置负载平衡器 我已经这样做了 上游服务器{ ip_哈希; 服务器A; 服务器B; 服务器C; 服务器D; 服务器E; 服务器F;} 服务器{ 监听80; server_nametest.server; 位置/{ proxy_set_headerX-Forwarded-Host$host:$server_port; proxy_set_header