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

PHP中$_GET['id']提示Undefined array key 'id'问题排查求助

解决PHP中「Undefined array key 'id'」的问题

错误原因

这个警告的核心是:你访问note.php时,URL里没有传递id参数,导致$_GET['id']找不到对应的数组键。

  • 你运行正常的「获取全部笔记」代码不需要依赖URL参数,所以不会触发这个错误;
  • 而单个笔记页面需要通过id参数指定要加载哪条笔记,直接访问note.php就会出现这个问题。

解决办法

  1. 直接带参数访问页面
    访问单个笔记时,必须在URL末尾加上?id=xxx(xxx替换成数据库中实际存在的笔记ID),比如:
http://localhost/controllers/note.php?id=1
  1. 增加参数合法性校验
    为了避免后续再出现这类错误,建议在使用$_GET['id']前先做检查,修改后的代码如下:
<?php
$config = require('config.php');
$db = new Database($config['database']);

$heading = 'Note';
$currentUserId = 1;

// 先校验id参数是否存在且为有效数字
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
    // 参数不合法时跳转到笔记列表页
    header('Location: /controllers/notes.php');
    exit;
}

$note = $db->query('select * from notes where id = :id',[
        'id' => $_GET['id']
    ])->findOrFail();

authorize($note['user_id'] === $currentUserId);

require "views/note.view.php";
  1. 检查列表页跳转链接
    如果是从笔记列表页点击进入单个笔记的,要确保列表页的链接正确携带id参数,比如列表页中的链接代码应该是:
<a href="/controllers/note.php?id=<?= $note['id'] ?>">查看这条笔记</a>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 11:35:20