Anstatt einige Daten in einem name
zu platzieren Attribut, machen Sie den name
Attribut etwas, das Sie wissen, und verwenden Sie den value
Attributieren Sie die unbekannten Daten, in diesem Fall den Namen.
Also
<input type='hidden' name='" . $tab[$x][1] . "' />
wird
<input type='hidden' name="thename" value='" . $tab[$x][1] . "' />
Jetzt wissen Sie in PHP, wonach Sie suchen müssen. Alles, was wir jetzt also beheben müssen, ist der SQL-Injection-Angriff Probleme, wir machen das, indem wir die Abfrage mit einem Parameter vorbereiten und dann einen Wert wie folgt an den Parameter binden
<?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();
}
}