点击删除按钮更新数据表列时提示comment_id未设置如何解决
问题原因
核心错误出在comment_frame.php的变量拼写:你构造表单action链接时用的变量是$comment_idd(末尾多了1个字母d),但实际存储有效评论ID的变量是$comment_id,这就导致传到delete_comment.php的comment_id参数为空,isset()判断不通过,自然就进入else分支输出「Not set」。
修复方案
把comment_frame.php里action部分的变量名改成正确的$comment_id即可,修正后的代码如下:
if ($userLoggedIn == $posted_by) { $delete_button = " <form action='includes/form_handlers/delete_comment.php?comment_id=$comment_id' method='GET' > <button name='delete_com' class='delete_comment btn-danger'>X " . $comment_id . "</button> </form>"; echo $delete_button; }
额外优化建议
- 不要用GET请求执行删除操作,GET属于幂等的只读请求,容易被浏览器预加载、爬虫爬取时误触发删除,建议把表单改为
method="POST",参数放在表单隐藏域里传递,后端对应改用$_POST接收。 - 后端拿到评论ID后要做二次权限校验,不要只依赖前端的
$userLoggedIn == $posted_by判断,防止越权删除他人评论。 - 补充参数校验逻辑,比如判断接收到的comment_id是否为合法数字,避免SQL注入风险。
内容的提问来源于stack exchange,提问作者sir toby
相关产品推荐
相关产品推荐

