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

PHP服务器POST请求后$_POST中api_key索引未定义问题

解决POST请求中api_key无法被PHP获取的问题

问题原因

你发起的POST请求里,api_key=tPmAT5Ab3j7F9是放在URL的查询参数里的,这部分参数在PHP中会被归类到$_GET数组,而不是$_POST数组。所以你代码里用isset($_POST["api_key"])判断自然会返回false,进而触发"No Api Key provided"的输出,同时直接访问$_POST["api_key"]就会报Undefined index的错误。

解决方案

方案1:保持URL带参数,修改PHP代码从$_GET取

如果你想继续在URL里带api_key参数,只需要把POST分支里的代码改成从$_GET获取即可,和你GET请求的逻辑一致:

$api_key = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (isset($_GET["api_key"])){
    $api_key = test_input($_GET["api_key"]);
       if($api_key == $api_key_value) {
           //do something
       }
    }
  } else{
      echo "No Api Key provided"; // 补充分号,避免语法错误
  }
}

方案2:标准POST方式,将参数放在请求体中

这是更规范的POST请求做法:

  • 在Postman中,选择请求体格式为x-www-form-urlencoded或者form-data
  • 添加键值对:api_key -> tPmAT5Ab3j7F9
  • 确保URL里不再带?api_key=xxx的参数,直接用http://192.168.178.43/update-led.php发送POST请求
  • 你的原PHP代码(POST分支)就可以正常获取到$_POST["api_key"]了

额外提醒

你代码里echo "No Api Key provided"语句末尾少了分号,这会导致PHP语法错误,记得补上。

内容的提问来源于stack exchange,提问作者Paul Heming

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:24:40