【发布时间】:2015-02-24 14:28:39
【问题描述】:
当我去 produkdelete.php 时,我可以查看我要删除的记录,但是当我确认删除时,没有删除记录
这是我的脚本:
$key = @$_GET["key"];
case "I": // Get a record to display
$tkey = $key;
$strsql = "SELECT * FROM `produk` WHERE `id`=".$tkey;
$rs = mysql_query($strsql, $conn) or die(mysql_error());
if (mysql_num_rows($rs) == 0)
{
ob_end_clean();
header("Location: "."produklist.php");
}
$row = mysql_fetch_assoc($rs);
$x_id = $row["id"];
$x_kdprod = $row["kdprod"];
$x_namaprod = $row["namaprod"];
$x_diskripsi = $row["diskripsi"];
$x_harga = $row["harga"];
mysql_free_result($rs);
break;
case "D": // Delete
// Open record
$tkey = $key;
$strsql = "DELETE FROM `produk` WHERE `id`=".$tkey;
$rs = mysql_query($strsql, $conn) or die(mysql_error());
mysql_free_result($rs);
mysql_close($conn);
ob_end_clean();
header("Location: produklist.php");
break;
key 变量是从 "produkdelete.php?key=".urlencode($row["id"]); 发送的;
每次我运行它时,输出都是这样的:
您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的“=”附近使用的正确语法
【问题讨论】:
-
您是否尝试过导出正在尝试的 SQL 语句实际上是什么?
-
var_dump($tkey)显示什么? -
试试
produkdelete.php?key=1 OR 1=1 -
哇!所以。许多。危险的。东西?!错误压制?!