文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php post 接收不到数据怎么办

2022-01-28 21:51

关注

本文操作环境: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 post 接收不到数据怎么办的详细内容,更多请关注编程界其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯