PHP传递玩家ID至更新/删除页面失败问题求助
解决玩家ID传递到更新/删除页面失败的问题
问题分析与修正方案
Edit按钮的参数传递错误
原代码里的Edit链接用单引号包裹,PHP不会解析单引号内的变量,导致URL里的$readRow[ID]直接以字符串形式传递,而非真实的玩家ID。需要改用双引号包裹URL,或者通过字符串拼接嵌入变量。Delete按钮未携带ID参数
原Delete链接没有附加ID参数,删除页面无法识别要操作的玩家,必须在URL中加入?id=玩家ID的参数。
修正后的代码
<tr> <td><img src="<?php echo $readRow['Photo']; ?>" width='64px'></td> <td><?php echo $readRow['ID']; ?></td> <td><?php echo $readRow['Fname']; ?></td> <td><?php echo $readRow['Lname']; ?></td> <td><?php echo $readRow['Age']; ?></td> <td><?php echo $readRow['Email']; ?></td> <td><?php echo $readRow['Phone']; ?></td> <td> <a href="update.php?id=<?php echo $readRow['ID']; ?>" data-toggle="modal" data-target="#editplayer" class='btn btn-success'>Edit</a> <a href="delete.php?id=<?php echo $readRow['ID']; ?>" name="Delete" class='btn btn-danger'>Delete</a> </td> </tr> <?php } ?>
更安全的删除方式(可选)
如果担心GET传递ID的安全风险(如CSRF),可以把Delete按钮改成POST表单提交,用隐藏域携带ID:
<tr> <!-- 其他列代码不变 --> <td> <a href="update.php?id=<?php echo $readRow['ID']; ?>" data-toggle="modal" data-target="#editplayer" class='btn btn-success'>Edit</a> <form action="delete.php" method="POST" style="display:inline;"> <input type="hidden" name="id" value="<?php echo $readRow['ID']; ?>"> <button type="submit" name="Delete" class='btn btn-danger'>Delete</button> </form> </td> </tr> <?php } ?>
内容的提问来源于stack exchange,提问作者idan katz
相关产品推荐
相关产品推荐

