Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak $_POST dynamicznie przypisaną wartość w PHP?

Zamiast umieszczać niektóre dane w name atrybut, zrób name przypisz coś, co znasz i użyj value przypisz nieznane dane, w tym przypadku nazwę.

Więc

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

staje się

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

Teraz w PHP wiesz czego szukać. Wszystko, co musimy teraz naprawić, to Atak wstrzykiwania SQL problemy, robimy to, przygotowując zapytanie z parametrem, a następnie wiążąc wartość z parametrem w ten sposób

<?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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LAST_INSERT_ID() MySQL

  2. MySQL Boolean tinyint(1) przechowuje wartości do 127?

  3. Wybierz kolumny w różnych bazach danych

  4. Jaki jest sens procedury składowanej?

  5. Dlaczego django ORM jest o wiele wolniejsze niż surowy SQL?