在页面上发送POST请求时的Phantom 302状态代码

时间:2011-04-15 作者:tksb

我真的希望我面前有一个简单的问题,因为这有点把我逼疯了。

短篇故事:在网站前端提交一个简单的表单会导致302 Found 重定向,完全剥离$_POST 过程中的数据。

场景:

在名为Editmy-edit-template.php) 并将其应用于Edit

my-edit-template.php:

<?php
/**
 * Template Name: My Edit Template
 */

if ($_POST[\'action\']) {
var_dump($_POST);
} 

get_header(); ?>

<form action="" method="post">
    <input name="my-ornery-field" value="">
    <input type="submit" value="submit">
    <input type="hidden" id="action" name="action" value="update-profile">
</form>

<?php get_footer(); ?>
现在,当我提交表单时,我在同一页上收到两个请求,第一个是POST, 在表单数据保持不变的情况下GET (状态代码200), 显然被剥夺了$_POST 全球或任何对我有用的东西。

我确信这是一个彻底的疏忽,但我不知所措;完全困惑。

我尝试过:

所有已禁用的插件刷新重写回基本默认值POST通过Javascript进行ing/XHR帮助?

如果细节不多,我很抱歉,我现在正在上课,但稍后我会跟进其他相关内容

2 个回复
最合适的回答,由SO网友:Ihor Vorotnov 整理而成

这个问题已经很老了,但却是唯一一个针对这类问题突然出现的问题。我今天晚上做了这个,花了将近4个小时让自己撞到墙上——禁用插件,到处评论代码(这是一个大型多站点项目,有很多自定义功能和前端表单、自定义URL和模板等)。那是一种痛苦。。。

我就把它留在这里。也许这会节省一些人几个小时。

“”When building custom frontend forms, always prepend your input/select/etc names with your custom prefix.“”

当您忘记这一点并开始命名字段以适应全局命名约定时,可以创建一个显示自定义分类法的选择,并将其命名为与自定义分类法本身命名相同的名称。当您点击“提交”时,WordPress会收到您的$\\u POST数据,对其进行解析,“理解”此名称为其注册的$query\\u var,并转换请求,添加此$query\\u var。当然,它会导致重定向,清除您的$\\u POST数据,并阻止表单执行其应该执行的操作。

SO网友:Otto

这个代码没有问题。我只是在本地安装了它,它工作得很好,这正是你所期望的。

检查有无冲突的插件。

结束