कुछ डेटा को name
. में रखने के बजाय विशेषता, name
बनाएं जो कुछ आप जानते हैं उसे विशेषता दें और value
. का उपयोग करें इस मामले में अज्ञात डेटा, नाम को विशेषता दें।
तो
<input type='hidden' name='" . $tab[$x][1] . "' />
बन जाता है
<input type='hidden' name="thename" value='" . $tab[$x][1] . "' />
अब PHP में आप जानते हैं कि क्या देखना है। तो अब हमें केवल SQL Injection Attack को ठीक करने की आवश्यकता है। समस्याएँ, हम ऐसा एक पैरामीटर के साथ क्वेरी तैयार करके और फिर इस तरह के पैरामीटर के लिए एक मान को बाध्य करके करते हैं
<?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();
}
}