Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie $_POST einen dynamisch zugewiesenen Wert in PHP?

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();
    }
}