Mysql enjeksiyon geçirmez komut dosyası oluşturmak için çalışılıyor [kapalı]

3 Cevap php

Ben benim koduyla yanlış Neler sadece bir acemi değilim, ben oluşturmak için gidiyorum web sayfalarını mysql enjeksiyonları savunmasız olmayacak, böylece bu deneme için çalışıyorum. Bunu yapmanın doğru yolu nedir:

<?php



$host="localhost";
$username="root";
$password="";
$db_name="testing";
$tbl="hospital";

$connection=mysql_connect($host, $username, $password) or die("cannot connect!");
mysql_select_db($db_name, $connection) or die("cannot select db!");


     $LASTNAME = $_POST[lname];
     $FIRSTNAME = $_POST[fname];



     $FIRSTNAME=(isset($_POST['fname']||trim($_POST['fname'])=="")?die('Error:Enter Firstname!')
                                                                       mysql_escape_string(trim($_POST['fname']));




      $sqlque="INSERT INTO hospital (LASTNAME, FIRSTNAME)
      VALUES ('$LASTNAME',  '$FIRSTNAME')"; 






if (!mysql_query($sqlque,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "<script>alert('Record successfully added!')</script>";



mysql_close($con)


?>

Burada, lütfen yardım hata, teşekkürler bulunuyor:

Parse error: parse error, expecting `','' or `')'' in C:\wamp\www\sql injection check\aisaction.php on line 20

3 Cevap

Eksik : kalıptan sonra ('!: Ad girin Hata') vardır

Bu soru karşısında söz konusu herkes için sadece bir güncelleme. Tercih edilen yöntem artık PDO'yu http://php.net/manual/en/book.pdo.php ve hazırlanmış deyimleri kullanmak olacaktır.

Özellikle MySQL uzatma artık, ya da yakında PHP desteklenen olmayacak ya. PDO da MySQL veya MySQLi daha taşınabilir

$db = new PDO(/*connection info*/);
$sql = "SELECT * FROM tbl WHERE condition1 = :param1 AND condition2 = :param2";

$stmt = $db->prepare($sql);
$stmt->bindValue(":param1", 10);
$stmt->bindValue(":param2", "banana");

$stmt->execute();