温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么解决php post接收不到数据问题

发布时间:2021-10-15 10:36:29 来源:亿速云 阅读:249 作者:iii 栏目:编程语言

本篇内容介绍了“怎么解决php post接收不到数据问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

php post接收不到数据的解决办法:1、将php.ini里max_input_vars更改为5000;2、通过“$GLOBALS['HTTP_RAW_POST_DATA']”获取数据。

怎么解决php post接收不到数据问题

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑

一:PHP 使用POST 获取不到部分数据问题  

使用PHP开发的一个项目,在测试阶段客户反馈说数据没有保存成功

而我之前测试是通过的,但按客户的信息上却重现了问题

问题是这样的

客户通过浏览器进行保存,但有些数据已经保存成功,但某些数据却没有保存成功

而我通过测试发现$_POST 某些数据竟然没有,但有些是有的

而file_get_contents("php://input");这种方式也可以获取数据,但因为数据需要进行处理,加上代码需要做不少改动

所以考虑下来还是要解决$_POST的问题

一开始我也是很纳闷,之前遇到的都是$_POST全部无法获取的问题,但只能获取部分信息还是头一次遇到

既然$_POST是能提交数据的,那么要不就是提交前部分数据没有发送到后台,要么就是后台没有收到

而通过查看浏览器的请求并没有发现有什么问题,所有数据都是正常发送的

那么就是后台没有获取到了

怎么解决php post接收不到数据问题

在我一遍测试中发现,我把提交的数据手动进行了删除,然后再提交

后台$_POST就能获取到全部的数据了,而后又在网上进行了搜索

才发现$_POST提交的数据有大小限制的

怎么解决php post接收不到数据问题

然后将php.ini里max_input_vars 更改为5000完美解决

怎么解决php post接收不到数据问题

二: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 post接收不到数据问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI