$_POST 为空

noa*_*ark 2 php apache-flex apache post

我正在将数据从 Flex 应用程序发布到 php 脚本。GET 工作正常,但 POST 似乎没有传输任何内容。as3httpclintlib 是我正在使用的库,但是,我有点怀疑这就是问题,因为在 php 中复制请求会得到相同的结果。我环顾四周,虽然似乎有多个与此类似的问题,但所提出的建议都不起作用。

据我所知,我的 php.ini 看起来不错,但我最近重新编译了 Apache 和 PHP。

//php.ini
...
variables_order = "EGPCS"
register_globals = off
register_argc_argv = On
post_max_size = 8M
gpc_order = "GPC"
...
Run Code Online (Sandbox Code Playgroud)

请求正文非常简单:

data={\"id\":0,\"password\":\"abcdefg\",\"name\":\"testUser\",\"createdOn\":null,\"apikey\":\"hijklmn\"}
Run Code Online (Sandbox Code Playgroud)

它看起来很奇怪,带有所有斜杠,但我 stripslashes() 并且它工作正常......通常。

因此,它不是 Flash,因为来自 PHP 的请求的行为方式相同。看起来这不是请求,因为相同的 GET 工作正常,Content-Type 设置为'application/x-www-form-urlencoded'。我很确定这与最近的编译有关,但这就是我所能接受的。感谢您的任何建议。

阿帕奇 2.2 PHP 5.3.3

更新:仍然没有让它工作,但看起来它可能是我的 Apache 配置的一部分。我不认为我所做的任何事情都不合格,但我没有看到许多其他解决方案。我需要特别注意什么来检查我的配置吗?

更新 2:仅使用所需的模块和扩展重新编译 Apache 和 PHP 后,它工作正常。我加载了一些额外的东西以供将来使用,也许……也许这是那些扔掉东西的东西之一。

Oli*_*ier 5

我对 PHP 5.3.2 Suhosin-Patch 和 htaccess 文件覆盖也有同样的问题:

php_value post_max_size = 150M
Run Code Online (Sandbox Code Playgroud)

这是一种单行解决方法:

parse_str(file_get_contents('php://input'), $_POST);
Run Code Online (Sandbox Code Playgroud)