In plaats van enkele gegevens in een name
te plaatsen attribuut, maak de name
Ken iets toe dat je weet en gebruik de value
attribuut de onbekende gegevens, in dit geval de naam.
Dus
<input type='hidden' name='" . $tab[$x][1] . "' />
wordt
<input type='hidden' name="thename" value='" . $tab[$x][1] . "' />
Nu weet je in de PHP waar je op moet letten. Dus alles wat we nu moeten oplossen is de SQL Injection Attack problemen, doen we dat door de query voor te bereiden met een parameter en vervolgens een waarde aan de parameter te binden, zoals deze
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST["delete-submit"]))
{
require "dbh.ext.php";
// add a parameter to the query and not a concatenated value
$sql = "DELETE FROM `persons` WHERE `name` = ?";
$stmt = $conn->prepare($sql);
// bind the value to the parameter
$stmt->bind_param('s', $_POST['thename']);
$res = $stmt->execute();
if (!$res) {
header("Location: ../persons/persons.php?error=sqlerror");
exit;
} else {
header("Location: ../persons/persons.php");
exit();
}
}