Cambia questo
<a href='#'><span class='delete'>
a
<a href='deletepage.php?id=" . $row["ID"] . "'><span class='delete'>
quindi su "deletepage.php", qualunque cosa chiamerai quella pagina, fai qualcosa del tipo
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();
Non so quale driver stai usando qui, ma la soluzione preferita sarebbe l'utilizzo di un'istruzione preparata con una query parametrizzata.
Quindi praticamente invii l'id
tramite un GET
parametro alla tua "cancella pagina". Quella pagina prende quel valore, lo lancia su un int
per evitare iniezioni SQL (leggi più avanti), quindi elimina i dati. Potresti anche usare un header
invece di fare eco a un successo per reindirizzarli alla pagina precedente. Puoi aggiungere un GET
parametro a quell'URL visualizza un messaggio di successo. (oppure potresti sempre fare tutto questo sulla stessa pagina e controllare semplicemente se il id
viene inviato).
Inoltre dovresti avere questa pagina dietro il sistema di accesso sicuro di qualcuno. Non vuoi che nessun utente/bot sia in grado di eseguire quel deletepage.php
.
Come posso prevenire l'SQL injection in PHP?
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
Immagino tu stia usando mysqli
quindi dai un'occhiata a questo documento per le istruzioni preparate con quel driver, http ://php.net/manual/en/mysqli.quickstart.prepared-statements.php
.