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

PHP PDO 运行代码时$_GET['id']行持续报错排查求助

问题定位

  • 首要报错原因:你访问当前PHP页面的URL中没有携带id查询参数,导致$_GET['id']读取时找不到对应的数组键,触发PHP警告。如果你的PHP版本配置了严格错误提示,这个警告会直接中断程序执行。
  • 附带隐藏风险:你直接将未校验的$id拼接进SQL语句,存在严重的SQL注入漏洞,攻击者可通过构造特殊id参数窃取、篡改数据库内容。
  • 额外代码问题:页面输出的HTML标签存在语法错误,比如<td>结束标签误写为</th>、部分<tr>标签缺失,会导致页面渲染异常。

解决方案

1. 修复参数读取逻辑,增加参数存在性校验

把原来的$id = $_GET['id'];替换为如下代码:

// 校验id参数是否存在且为正整数
if (!isset($_GET['id']) || !is_numeric($_GET['id']) || $_GET['id'] <= 0) {
    // 参数非法时跳转到列表页或提示错误
    header('Location: index.php');
    exit();
}
$id = (int)$_GET['id'];

2. 使用PDO预处理语句替代直接SQL拼接,修复注入风险

把原来的$data = $conn->query("SELECT * FROM Series WHERE id = " . $id)->fetchAll();替换为预处理写法:

$stmt = $conn->prepare("SELECT * FROM Series WHERE id = ?");
$stmt->execute([$id]);
$data = $stmt->fetchAll();

3. 修复HTML标签语法错误

调整输出逻辑里的标签写法,统一匹配开闭标签,比如把所有误写的</th>替换为对应</td>,补充缺失的<tr>标签即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:48:02