【发布时间】:2017-10-12 15:35:40
【问题描述】:
我叫 HiCt,是 SOF 的新手。
对于我的学校项目,我需要创建一个网站,其中包含一些 PHP 脚本和 SQL。我的页面当前在 PHP 网站上正确显示了我的 SQL 表。
现在我创建了一个删除操作来直接从页面中删除行,我在 Phpmyadmin 中对其进行了测试,它可以工作,但它不在我的网站上。
谁能看出它为什么不起作用?我注意到它创建了一个 URL,它试图删除 $naam 而不是他应该删除的 $id。
'
$conn = mysqli_connect("localhost", "root", "", "winkel");
error_reporting(E_ERROR | E_PARSE); #Verberg meldingen van PHP
#error_reporting(E_ALL);
if (mysqli_connect_errno()) {
echo "Kan geen verbinding maken met de database!";
exit();
}
if($_GET['action']=="remove")
{;
$sqli = "DELETE FROM klanten WHERE id = ".$_GET['id']." ";
echo ($conn->query($sqli) === true) ? "De klant is verwijderd." : "De klant kon niet worden verwijderd.";
}
$sqli = "SELECT * FROM `klanten`";
if ($stmti = $conn->prepare($sqli)) {
if (!$stmti->execute()) {
echo "cant exec: <br> " . $stmti->error;
exit();
} else {
$stmti->bind_result($id, $naam, $adres, $woonplaats, $contactpersoon, $telefoonnummer, $emailadres, $betalingsachterstand);
$stmti->store_result();
while($stmti->fetch()) {
echo "<tr>";
echo "<td>" . $id . "</td>";
echo "<td>" . $naam . "</td>";
echo "<td>" . $adres . "</td>";
echo "<td>" . $woonplaats . "</td>";
echo "<td>" . $contactpersoon . "</td>";
echo "<td>" . $telefoonnummer . "</td>";
echo "<td>" . $emailadres . "</td>";
echo "<td>" . $betalingsachterstand . "</td>";
echo "<td><a href='klantbewerken.php?id=".$naam."&action=edit'>Bewerken</a></td>"; #Op een of andere manier melding bewerken
echo "<td><a href='klanten.php?id=".$id."&action=remove'>Verwijderen</a></td>"; # Verwijder een row uit de DB
echo "</tr>";
}
}
} else {
echo "can't prepare: <br> " . $stmti->error;
exit();
}
?>'
【问题讨论】:
-
$sqli = "DELETE FROM klanten WHERE id = ".$_GET['id']." ";此处可以进行 SQL 注入
-
这里去掉分号 if($_GET['action']=="remove") {;
-
感谢您对 JYoTHl 的评论,可惜没用 :(。有关更多信息,请参阅我对 Nages Katke 的回复。
-
@RaymondNijland Thnx!这是私人使用,但还是谢谢你:)
-
可能是 $_GET['id'] 为空@HiCt
标签: php mysql sql sql-server