Alih-alih menempatkan beberapa data dalam name
atribut, buat name
atribut sesuatu yang Anda ketahui dan gunakan value
atribut data yang tidak diketahui, nama dalam hal ini.
Jadi
<input type='hidden' name='" . $tab[$x][1] . "' />
menjadi
<input type='hidden' name="thename" value='" . $tab[$x][1] . "' />
Sekarang di PHP Anda tahu apa yang harus dicari. Jadi yang perlu kita perbaiki sekarang adalah SQL Injection Attack masalah, kami melakukannya dengan menyiapkan kueri dengan parameter dan kemudian mengikat nilai ke parameter seperti ini
<?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();
}
}