Notice: Undefined variable: HTTP_RAW_POST_DATA in D:\Web\www\local\index.php on line 3
$HTTP_RAW_POST_DATA不存在主要是因为
- php.ini中没有开启always_populate_raw_post_data
- PHP 5.6开始已经废止always_populate_raw_post_data,$HTTP_RAW_POST_DATA变量自然是未定义。
- 可以通过php://input来获取原生的POST数据,然后赋给变量 $HTTP_RAW_POST_DATA来实现类似的功能。
- <?php
- ini_set('always_populate_raw_post_data',-1);
- $HTTP_RAW_POST_DATA = file_get_contents('php://input');
- echo $HTTP_RAW_POST_DATA;
- ?>
复制代码 $_POST和$HTTP_RAW_POST_DATA的区别在于$_POST是一个数组,可以根据表单控件的name来获取对应的控件提交过来的值,而是$HTTP_RAW_POST_DATA本质上是一个字符串,由表单控件的name及value组装而成,形如from=51-n.com&name=wuxiancheng,而php://input属于输入流,可以简单理解为一个文件,打开这个文件即可以得到内容。 |