1.3.5 POST 请求后台接收不到数据

POST请求后台收不到数据,我本地好用上传服务就不好用了,代码给同事他的也不好用,找了好久也没发现问题。
 
98989.png 797979.png
已邀请:

dogstar - PhalApi创始人

赞同来自:

看上面的情况,你是直接:var_dump($_POST)的,和PhalApi框架无关了。
 
可以检测一下,你的php.ini配置中的variables_order = "EGPCS" (是否有包含 P,表示 POST),不包含则表示服务端没有开启POST变量。

weixiao - 80后 IT

赞同来自:

加了还是不好用啊

weixiao - 80后 IT

赞同来自:

在入口文件init.php打断点,没有$_POST

dogstar - PhalApi创始人

赞同来自:

本地可以,但服务器不行,通常是环境配置问题。
 
可以搜索下:php POST 获取不到
 
参考:
 解决方法:修改php.ini
enable_post_data_reading = On
always_populate_raw_post_data = On
重启apache即可解决。
 
https://www.cnblogs.com/hnhycnlc888/p/9595452.html

weixiao - 80后 IT

赞同来自:

解决了,我把DI中的
$postRaw = file_get_contents('php://input');
if (!empty($postRaw)) {
$postRawArr = json_decode($postRaw, true);
if (!empty($postRawArr) && is_array($postRawArr)) {
$_REQUEST = array_merge($_REQUEST, $postRawArr);
$_POST = array_merge($_POST, $postRawArr);
}
}
放到test方法中,改成图片中的样式,打印都有结果,很奇怪就在DI中也增加了打印输出,
$postRaw = file_get_contents('php://input');
if (!empty($postRaw)) {
$postRawArr = json_decode($postRaw, true);
if (!empty($postRawArr) && is_array($postRawArr)) {
echo '111';
$_REQUEST = array_merge($_REQUEST, $postRawArr);
$_POST = array_merge($_POST, $postRawArr);
}
}
然后发现居然好了,再删除echo正常了,但是还是不知道为什么?

要回复问题请先登录注册