不推荐使用`$ HTTP_RAW_POST_DATA`

时间:2016-08-25 13:57:46

标签: php html

所以我正在研究一个非常简单的post post方法,比如这个

<form action="index.php" method="POST"> password:<input type="password" name="password"> <input type="submit" value="submit"> <form/>

当我在浏览器上打开它并单击“提交”时,它会显示以下错误 enter image description here

在你说什么之前,是的,我设置了

  

always_populate_raw_post_data = -1

如下所示: enter image description here

但仍然会出现错误弹出.......请帮助!!!

2 个答案:

答案 0 :(得分:1)

来自link in the config file

  

如果设置为TRUE,PHP将始终填充包含原始POST数据的$HTTP_RAW_POST_DATA。否则,仅在无法识别数据的MIME类型时填充变量。

     

访问原始POST数据的首选方法是php://input,并且在PHP 5.6.0及更高版本中不推荐使用$HTTP_RAW_POST_DATA。将always_populate_raw_post_data设置为-1将选择将在未来版本的PHP中实现的新行为,其中永远不会定义$HTTP_RAW_POST_DATA

     

无论设置如何,$HTTP_RAW_POST_DATA都不适用于enctype =&#34; multipart / form-data&#34;。

根据文档将其设置为-1,而不是TRUE使用的PHP 7.0版本甚至不定义$HTTP_RAW_POST_DATA

无论如何,正如文档中所提到的,你真的应该使用file_get_contents("php://input");来读取原始的POST数据。

答案 1 :(得分:1)

我实际上是在编辑错误的php.ini文件,因为在Wamp文件夹中有一堆文件...虽然通过单击工具栏中的Wamp找到了正确的文件 - &gt; PHP-&gt; php.ini文件并设置always_populate_raw_post_data = -1,然后一切都会完美地运作