Wijzig dit
<a href='#'><span class='delete'>
naar
<a href='deletepage.php?id=" . $row["ID"] . "'><span class='delete'>
dan op "deletepage.php", hoe je die pagina ook gaat noemen, doe zoiets als
require_once('dbconnect.php');
$id = (int)$_GET['id'];
$sql = "DELETE FROM Predictions WHERE id=" . $id;
if($conn->query($sql) === TRUE) {
echo "Item deleted successfully";
} else {
echo "Error deleting record; ". $conn->error;
}
$conn->close();
Ik weet niet welk stuurprogramma u hier gebruikt, maar de voorkeursoplossing zou het gebruik van een voorbereide instructie met een geparametriseerde query zijn.
Je stuurt zo ongeveer de id
via een GET
parameter naar uw "pagina verwijderen". Die pagina neemt die waarde, cast het naar een int
om SQL-injecties te voorkomen (lees hieronder verder), en verwijdert vervolgens de gegevens. Je zou ook in plaats van een succes daar te herhalen een header
. kunnen gebruiken om ze door te verwijzen naar de vorige pagina. Je zou een GET
. kunnen toevoegen parameter aan die url een succesbericht weer te geven. (of je kunt dit altijd allemaal op dezelfde pagina doen en gewoon controleren of de id
wordt verzonden).
Ook moet u deze pagina achter een beveiligd inlogsysteem hebben. Je wilt niet dat een gebruiker/bot die deletepage.php
. kan uitvoeren .
Hoe kan ik SQL-injectie in PHP voorkomen?
http://php.net/manual/en /security.database.sql-injection.php
https://www.owasp.org /index.php/SQL_Injection_Prevention_Cheat_Sheet#Defense_Option_1:_Prepared_Statements_.28Parameterized_Queries.29
Ik gok dat je mysqli
. gebruikt dus bekijk dit document voor voorbereide verklaringen met die driver, http ://php.net/manual/en/mysqli.quickstart.prepared-statements.php
.