【问题标题】:WordPress $_POST variables disappear completely on form submissionWordPress $_POST 变量在表单提交时完全消失
【发布时间】:2012-09-05 04:00:32
【问题描述】:

我在 WordPress 中创建了一个页面模板来显示带有 action="" 的表单。很简单,它不会在提交时发布任何表单数据。我试过var_dump($_POST),但它每次都给我array(0) {}。我尝试了一些网站提供的用于创建表单的示例,但我无法重现相同的结果。

我已经彻底寻找这个问题的答案,但似乎没有任何效果。它必须是内部的或非常先进的东西。我只想知道为什么我的表单数据不会发布以及它可能会去哪里。

【问题讨论】:

  • 刚刚试了一下。还是给了我空数组
  • 提交到正确的脚本了吗?
  • 检查是否没有后重定向获取。帖子数据可能存在,但重定向后会消失。
  • @MarcB 我该怎么做?我有一个用于我的页面的页面模板(例如 temp.php)。表单和 PHP 脚本位于该模板文件中。表单操作针对同一页面。在提交的某个地方,数据会消失或被清除。
  • @Sean:您可以使用浏览器的开发人员工具来检测重定向。如果您使用的是 Firefox,则可以安装 Firebug。 IE和Chrome默认自带开发者工具(IE我不确定,可能需要安装“Internet Explorer开发者工具栏”)。

标签: php forms wordpress post


【解决方案1】:

使用非 WP 页面检查您的数据,这意味着将 php 文件放在 web-root 中,并让表单操作指向它,例如 ...action="/formtest.php",然后在该页面上:

<?php 
 var_dump($_POST);
?>

这将测试您是否真的 没有获得 POST 变量。然后,由于您有 99% 的可能发现它们正在发布,因此可能的问题是您的页面被其他地方提到的主题重定向到某个地方(例如,我的主题包含一个挂钩 'template_redirect'...)。

如果您精通主题并且只是在寻找快速修复 - 以在主题升级时丢失它为代价 - 您可以仅为您的 temp.php 页面创建一个例外,但方式许多开发人员通过插件处理它,或者通过 Ajax 处理您的表单。许多其他人也遇到过同样的问题,因此,要么将代码添加到插件中,要么执行页内 Ajax(因为您无论如何都要提交到 SELF...)。

This page 将为您提供 WP Ajax 的帮助,它是一个声誉良好且编写良好的文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 2015-02-01
    相关资源
    最近更新 更多