
本文详解如何使用 php 的 get 方法安全、正确地将数据(如用户 id)通过 url 传递至其他页面(如 update.php 或 delete.php),重点解决因 php 变量未正确解析导致参数丢失的常见问题。
本文详解如何使用 php 的 get 方法安全、正确地将数据(如用户 id)通过 url 传递至其他页面(如 update.php 或 delete.php),重点解决因 php 变量未正确解析导致参数丢失的常见问题。
在 Web 开发中,通过 URL 向目标页面传递数据是最基础且高频的操作之一。你当前的代码中,<a href="update.php?id=%24readRow[ID]"></a> 和 <a href="delete.php"></a> 存在两个关键问题:
-
PHP 变量未被解析:单引号字符串
'update.php?id=$readRow[ID]'会原样输出$readRow[ID],而不会执行变量替换; -
删除链接缺失 ID 参数:
delete.php未携带id,导致后端无法识别要操作的具体记录。
✅ 正确做法是:所有需动态插入的 PHP 变量必须用 <?php echo ?> 显式输出,并置于双引号或无引号的 HTML 属性值中。修正后的代码如下:
<td>
<a href="update.php?id=<?php echo urlencode($readRow['ID']); ?>"
data-toggle="modal"
data-target="#editplayer"
class="btn btn-success">Edit</a>
<a href="delete.php?id=<?php echo urlencode($readRow['ID']); ?>"
name="Delete"
class="btn btn-danger">Delete</a>
</td>⚠️ 重要注意事项:
- 使用
urlencode()对参数值进行编码(如urlencode($readRow['ID'])),可避免 ID 中含特殊字符(如空格、&、/)导致 URL 截断或解析错误; - 在
update.php和delete.php中,务必通过$_GET['id']获取并严格校验该值(例如检查是否为正整数、是否存在对应记录),防止恶意请求或 SQL 注入; - 生产环境建议对敏感操作(如删除)采用 POST + CSRF 保护,而非仅依赖 GET 链接,以提升安全性。
总结:URL 传参本质是客户端向服务端发起带查询参数的 HTTP 请求,PHP 脚本需主动“输出”变量值才能生成有效链接——切勿将 PHP 语法混入静态字符串中。掌握 echo 输出与 urlencode 编码,是构建健壮数据交互链路的第一步。
立即学习“PHP免费学习笔记(深入)”;



















