php - 如何修复未定义的索引?
问题描述
我已连接到本地主机,并尝试在 $ 行上使用 GET 方法。我在第 4 行收到通知:未定义索引:C:\xampp\htdocs\webd153\delete.php 中的 deleteid。
<?php
include 'connection.php';
$deleteid = $_GET['deleteid'];
if (isset($deleteid)) {
$deletesql = $dbh->prepare("DELETE FROM users WHERE id = '$deleteid'");
$deletesql->execure();
echo "record has been deleted!<br>";
我正在尝试使用从本地主机连接到 myphpadmin 数据库的表单删除我在数据库中输入的名称。
解决方案
正确的方法是:
<?php
include 'connection.php';
if(isset($_GET['deleteid']) {
$deleteid = $_GET['deleteid'];
$deletesql = $dbh->prepare("DELETE FROM users WHERE id = '$deleteid'");
$deletesql->execute();
echo "record has been deleted!<br>";
}
但这是非常不安全的!当我发送带有 URL 结尾的请求时?deleteid=1'+OR+1=1+OR+id='
,您的数据库将被删除所有行。我建议将查询构建更改为:
$deletesql = $dbh->prepare("DELETE FROM users WHERE id = (?)");
$deletesql->bind_param('i', $deleteid);
推荐阅读
- javascript - 对象文字中的箭头函数与类生成对象中的箭头函数
- java - 如何在 Spring Boot 应用程序中实现 Firestore 时间戳
- xslt - 如何在 xslt 中计算天数
- javascript - 使用 express-session 设置会话后无法在浏览器中查看 cookie
- python - 在 Psychopy 中记录并行端口脉冲
- python - list() turns string to a list of integers instead of a list of strings
- authentication - Kubeflow pipelines can't fetch model from google cloud storage
- python - Run binary exe in python script without writing it to a disk
- xamarin - 外键总是返回 0
- sql - 添加变量以计算连续月份