2010-03-02 8 views
0

Je suis juste un débutant, Quel est le problème avec mon code, j'essaie d'expérimenter sur ce sujet afin que les pages Web que je vais créer ne seront pas vulnérables aux injections mysql. Quelle est la bonne façon de le faire:Essayer de créer un script de preuve d'injection mysql

<?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) 


?> 

est ici l'erreur, s'il vous plaît aider, merci:

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

Il vous manque un parent sur le premier isset. (isset ($ _ POST ['fname'] **) ** || trim ($ _ POST ['nomfichier']) == "") –

Répondre

1

Il y a un manque : après die ('Erreur: Entrez Prénom')

1

Juste une mise à jour pour tous ceux qui rencontrent cette question. Le procédé préféré consisterait maintenant à utiliser le PDO http://php.net/manual/en/book.pdo.php et les instructions préparées. En particulier, l'extension MySQL n'est plus, ou ne sera bientôt plus supportée en PHP. PDO est également plus portable que MySQL ou MySQLi

$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(); 
Questions connexes