当我做$ HTTP_RAW_POST_DATA的简单回声时,我得到错误:
Undefined variable: HTTP_RAW_POST_DATA
Run Code Online (Sandbox Code Playgroud)
我在php.ini中看到我需要取消勾选
always_populate_raw_post_data = On
Run Code Online (Sandbox Code Playgroud)
但我仍然得到错误,我也重启了Apache.我正在使用php 5.3.6
rdl*_*rey 26
如果您需要访问原始POST主体,您应该支持根据相关手册条目使用php://input流:$HTTP_RAW_POST_DATA
php:// input是一个只读流,允许您从请求正文中读取原始数据.在POST请求的情况下,最好使用php:// input而不是$ HTTP_RAW_POST_DATA,因为它不依赖于特殊的php.ini指令.此外,对于默认情况下未填充$ HTTP_RAW_POST_DATA的情况,它可能是激活always_populate_raw_post_data的内存密集型替代方案.php://输入不适用于enctype ="multipart/form-data".
因此,要使用以下命令访问POST正文php://input:
$post = file_get_contents('php://input');
Run Code Online (Sandbox Code Playgroud)
Mil*_*lap 22
如果你得到
注意:未定义的变量:HTTP_RAW_POST_DATA
请打开您的服务器文件添加查找
$server->service($HTTP_RAW_POST_DATA);
Run Code Online (Sandbox Code Playgroud)
并替换为以下2行.
if ( !isset( $HTTP_RAW_POST_DATA ) ) $HTTP_RAW_POST_DATA =file_get_contents( 'php://input' );
$server->service($HTTP_RAW_POST_DATA);
Run Code Online (Sandbox Code Playgroud)
我希望这会有所帮助.