sql >> Databáze >  >> RDS >> Mysql

Jak $_POST dynamicky přiřazenou hodnotu v PHP?

Místo umístění některých dat do name atribut, vytvořte name připište něco, co znáte, a použijte value atribut neznámá data, v tomto případě název.

Takže

<input type='hidden' name='" . $tab[$x][1] . "' />

se stává

<input type='hidden' name="thename" value='" . $tab[$x][1] . "' />

Nyní v PHP víte, co hledat. Takže vše, co teď musíme opravit, je útok SQL Injection problémech, uděláme to tak, že připravíme dotaz s parametrem a poté navážeme hodnotu na parametr, jako je tento

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



  1. 2 způsoby, jak vytvořit databázi na propojeném serveru pomocí T-SQL

  2. Jak zobrazit všechna oprávnění k databázi Oracle pro uživatele

  3. Jaký je připojovací řetězec sql, který musím použít pro přístup k localhost\SQLEXPRESS s ověřováním Windows nebo ověřováním SQL?

  4. Použití Sysbenche ke generování testovacích dat pro sdílenou tabulku v MySQL