Modérateur PHPfrance |
8758 Messages
08 août 2011, 23:39
Avec de la requête préparée la question ne se poserait pas, mais ce n'est pas le cas ici

non
Exemple #1 Protection d'une chaîne normale
<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');
/* Chaîne simple */
$string = 'Nice';
print "Chaîne non échappée : $string\n";
print "Chaîne échappée : " . $conn->quote($string) . "\n";
?>
L'exemple ci-dessus va afficher :
Chaîne non échappée : Nice
Chaîne échappée: 'Nice'
note bien les ' ajoutées
j'ai donc, par acquis de conscience, fait un test perso
<?php
$sgbdCon = [
'db_type' => 'mysql',
'db_host' => 'localhost',
'db_user' => 'root',
'db_pwd' => 'yyRu2TKEvyYpzFLK',
'db_name' => 'test'
];
$pdo = new pdo('mysql:host=localhost;dbname=test', $sgbdCon['db_user'], $sgbdCon['db_pwd']);
/* Chaîne simple */
$_POST = ['pseudo'=>'chaine truc machin','pass'=>"azedscxvfrertr"];
$sql = 'SELECT * '.
'FROM user '.
'WHERE pseudo='.$pdo->quote($_POST['pseudo']).' '.
'and pass='.$pdo->quote($_POST['pass']).' ';
var_dump($sql);
?>
résultat : string(79) "SELECT * FROM user WHERE pseudo='chaine truc machin' and pass='azedscxvfrertr' "
donc tous va bien j'me goure pas
edit : la syntaxe des tableaux est bonne (test alpha php5.4 ^^), ça ne change rien au test
@+
Il en faut peu pour être heureux ......