【问题标题】:what in PHP server setup would cause $_REQUEST to be empty?PHP 服务器设置中的什么会导致 $_REQUEST 为空?
【发布时间】:2012-10-18 13:00:11
【问题描述】:

我一直在我的本地机器上开发一个 WordPress 网站并在我自己的服务器上托管。一切运行完美。

自从移至客户端服务器后,编辑器中的某些功能已停止工作。具体来说,那些涉及 ajax 请求的。我已经调查过了,它在admin-ajax.php 中以die(0) 退出,代码如下:

// Require an action parameter
if ( empty( $_REQUEST['action'] ) )
    die( '0' );

进一步阅读看到$_REQUEST 在wp_magic_quotes() 在wp-includes/load.php 中被重置如下:

$_REQUEST = array_merge( $_GET, $_POST );

服务器上的 PHP 设置可能导致$_REQUEST 在wp_magic_quotes() 之后在ajax-admin.php 期间保持空白的问题是什么?

如果我编辑 ajax-admin.php 以添加 $_REQUEST 重置:

$_REQUEST = array_merge( $_GET, $_POST );

// Require an action parameter
if ( empty( $_REQUEST['action'] ) )
    die( '0' );

...那么编辑器中的所有 ajax 都可以正常工作。

但我不想编辑核心文件,所以想知道如何更改服务器设置以使用标准文件?

设置详情:
WordPress 3.4.2
使用 Apache 2.0 处理程序的 PHP 5.4.5
Unix服务器

PHP 设置:
request_order:没有价值
variables_order: GPCS

任何帮助表示赞赏。

【问题讨论】:

  • check the docs是个好主意
  • 暂时禁用所有插件和任何非默认主题。你还有问题吗?您使用的是哪个 Wordpress 和哪个 PHP 版本?
  • 还在顶部放置一个var_dump($GLOBALS);,并以纯文本形式查看它返回的内容。超级全局变量是否像您的本地系统一样填充?
  • @hakre 问题出现在默认主题且没有插件的情况下。这是服务器问题。
  • 请将您的 PHP + Wordpress 版本添加到您的问题中。此外,如果您有关于服务器(至少是操作系统)的详细信息,对未来的用户来说会很好。检查 cmets/answers 中概述的 ini 设置。他们应该帮助解决这个问题。

标签: php ajax wordpress request


【解决方案1】:

【讨论】:

  • 已将此信息添加到帖子中,因为很多人要求我检查
【解决方案2】:

验证您的 php.ini 配置。对于 Get 和 Post,有一个选项 request_order 必须设置为“On”,Value 必须设置为“GP”。

它已关闭。但这是我在 WAMP 本地 ini 上的样子。

; request_order
;   Default Value: None
;   Development Value: "GP"
;   Production Value: "GP"

【讨论】:

  • 这并不意味着它会将超级全局数组 REQUEST 留空。
猜你喜欢
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多