Salut,
Donc après avoir suivi un tuto (car je débute en php) pour construire un panier en php qui c'est très bien passé à part la fin ou je suis revenu un peu en arrière pour tester la partie anti-faille avec des injections, que j'avais sauté.
Et voilà mon problème:
Dans l'exemple, il injecte un mot ici( 'chien') à la place du nombre des quantités d'un produit qui a l'id=1 sur ma page panier.php (avant d'écrire le script anti-faille), et après avoir actualisé, à partir de là, mon site à des erreurs php au niveau du input des quantités et déforme tout mon site.
Voici le tableau que m'affiche un var-dump($_SESSION); au niveau de ma fonction recalculer les quantités :
array (size=2)
'panier ' =>
array (size=0)
empty
'panier' =>
array (size=2)
'chien' => string '6' (length=1)
2 => string '3' (length=1)
Je vois que mon id 1 est remplacé par le script chien, mais ce ne m'avance pas plus pour régler mon problème avec mon niveau.
Et voici l'erreur qui s'affiche :
Warning: PDOStatement::execute(): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'chien' in 'where clause' in C:\wamp\www\mon_site\boutique\db.class.php on line 35
La fonction de la ligne 35 de mon db.class.php (connection à la database) :
33 public function query($sql, $data = array()){
34 $req =$this->db->prepare($sql);
35 $req->execute($data);
36 return $req->fetchAll(PDO::FETCH_OBJ);
}
Donc pour moi le problème est dans la base de donnée, mais après avoir supprimé ma table et crée une nouvelle j'ai toujours le même problème.
J'ai aussi fini le code php que me propose le tuto contre les injetions au niveau des inputs quantités mais ça na rien changer non plus.
J'ai fouillés dans mon navigateur (firefox) avec firebug mais rien de concluant.
Voilà, j'ai vraiment besoin d'aide même si autant ce n'est rien du tous, mais j'aimerais bien comprendre ce qui se passe.
Dite moi si j'ai été assez claire et si vous voulez plus de script.
Merci