You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP POST请求返回空数组,请求排查问题

问题分析与解决办法

嘿,我来帮你理清这个问题——你其实是混淆了GET参数和POST参数的本质区别啦!

核心问题:URL里的参数永远是GET参数

不管你用的是POST还是GET请求方式,URL末尾通过?key=value形式传递的参数,都属于GET参数,只会被PHP存到$_GET数组里,和$_POST完全不相关。你用$_POST去拿自然是空数组,换成$_GET能拿到才是正常的表现。

正确获取POST数据的方式

如果你确实想用POST请求传递数据并通过$_POST获取,得这么做:

  • 在Postman里选好POST请求后,切换到Body标签
  • 选择form-data或者x-www-form-urlencoded格式(这两种是PHP默认能解析到$_POST里的格式)
  • 添加键为value,值为1255455的参数
  • 这时候发起请求,用$_POST['value']就能正常获取到数据了

关于enable_post_data_reading的说明

你开启的这个配置是让PHP能够读取POST请求体里的数据,和URL上的GET参数没有任何关系,所以它不会影响你获取URL里的value参数。

额外提示

如果你只是想获取参数不管请求方式,可以用$_REQUEST['value'],不过不推荐这么做——因为$_REQUEST包含了$_GET、$_POST和$_COOKIE的内容,参数优先级受php.ini里的request_order配置影响,容易出现意料之外的覆盖问题。

内容的提问来源于stack exchange,提问作者Luis Souza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:28:41