【发布时间】:2016-07-09 18:05:20
【问题描述】:
我在 Php 5.6 上使用 Fat Free Framework 3.5 并且无法摆脱错误:
致命错误:自动填充 $HTTP_RAW_POST_DATA 是 已弃用,并将在未来的版本中删除。为了避免这种情况 警告在 php.ini 中将“always_populate_raw_post_data”设置为“-1”并使用 改为 php://input 流。
在共享主机上,我无权访问 php.ini 文件。
Google 告诉我可以将其添加到我的 .htaccess
<IfModule mod_php5.c>
php_flag always_populate_raw_post_data -1
</IfModule>
但这并没有做任何事情。
我已经更改了
的所有实例$f3->get("BODY")
到
file_get_contents('php://input')
但这似乎也无济于事。
什么给了?我该如何解决?
【问题讨论】:
-
This answer 说原因是一个空的 POST 并添加了一个填充参数。
-
不,这不是问题所在。我在请求正文中发布 JSON。如果我将 Godaddy 更改为 php v5.5 而不是 5.6,一切正常。
-
这不是 Fat Free Framework 的问题。每当您使用像您这样的 php.ini 设置向 PHP 5.6 发送 JSON AJAX 请求时,您都会得到类似的响应。您需要更改 php.ini 或使用 POST 值在 AJAX 中发送数据。或者,如果它是一个生产环境,你应该隐藏所有错误(你应该在 prod 上做任何事情):secure.php.net/manual/en/function.error-reporting.php