您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php post 接收不到数据怎么办

2024/3/15 7:16:40发布33次查看
php post接收不到数据的解决办法:1、将php.ini里max_input_vars更改为5000;2、通过“$globals['http_raw_post_data']”获取数据。
本文操作环境:windows7系统、php7.1版、dell g3电脑
一:php 使用post 获取不到部分数据问题   
使用php开发的一个项目,在测试阶段客户反馈说数据没有保存成功
而我之前测试是通过的,但按客户的信息上却重现了问题
问题是这样的
客户通过浏览器进行保存,但有些数据已经保存成功,但某些数据却没有保存成功
而我通过测试发现$_post 某些数据竟然没有,但有些是有的
而file_get_contents(php://input);这种方式也可以获取数据,但因为数据需要进行处理,加上代码需要做不少改动
所以考虑下来还是要解决$_post的问题
一开始我也是很纳闷,之前遇到的都是$_post全部无法获取的问题,但只能获取部分信息还是头一次遇到
既然$_post是能提交数据的,那么要不就是提交前部分数据没有发送到后台,要么就是后台没有收到
而通过查看浏览器的请求并没有发现有什么问题,所有数据都是正常发送的
那么就是后台没有获取到了
在我一遍测试中发现,我把提交的数据手动进行了删除,然后再提交
后台$_post就能获取到全部的数据了,而后又在网上进行了搜索
才发现$_post提交的数据有大小限制的
然后将php.ini里max_input_vars 更改为5000完美解决
二:php中$_post接收不到前端数据的解决方法
默认情况下前端请求类型为content-type:application/x-www-form-urlencoded,使用$_post即可取到数据,
如果前端请求类型为content-type:application/json,仅仅使用$_post无法取到数据。(如vue.js的axios,默认方式为application/json)
此时可以通过$globals['http_raw_post_data']取得,再使用json_decode转为对象,示例如下
$mypost = $globals['http_raw_post_data']$postdata = json_decode($mypost);$username = $postdata->username;
如果提示undefined index: http_raw_post_data,则将代码改为如下即可。
$mypost = isset($globals['http_raw_post_data'])?$globals['http_raw_post_data']:file_get_contents("php://input");$postdata = json_decode($mypost);$username = $postdata->username;
推荐学习:《php视频教程》
以上就是php post 接收不到数据怎么办的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product