bonjour,

J'aimerai savoir s'il faut ajouter des protections genre "addslashes, htmlentities, etc..." lorsque l'on utilise une requête préparé?

du type :

$tabs = array("nom" =>$_POST"nom"], "prenom" =>$_POST"prenom"], "email" =>$_POST"email"], "objet"=>$_POST"objet"],
                        "message" =>$_POST"message"], "societe" =>$_POST"societe"], "dateday" =>date("d/m/y"));

        $req = $DB->prepare('INSERT INTO contact (id,nom,prenom,email,societe,objet,message,date) VALUE (null, :nom, :prenom, :email, :societe, :objet, :message, :dateday);');
        $req->execute($tabs);

merci de votre aide.

7 réponses


charlo14
Réponse acceptée
$tabs = array("nom" =>$_POST"nom"], "prenom" =>$_POST"prenom"], "email" =>$_POST"email"], "objet"=>$_POST"objet"],
                        "message" =>$_POST"message"], "societe" =>$_POST"societe"], "dateday" =>date("d/m/y"));

        //permet de recuperer les valeurs du tableaux sous forme de variables (ex: $nom)
        extract($tabs);

        $req = $DB->prepare('INSERT INTO contact (id,nom,prenom,email,societe,objet,message,date) VALUE (null, :nom, :prenom, :email, :societe, :objet, :message, :dateday);');

        //on echappe chaque valeur suivant son type donc repetes la ligne pour toutes les variables
        $req->bindParam(':nom', $nom, PDO::PARAM_STR);

        $req->execute($tabs);

http://php.net/manual/en/pdostatement.bindparam.php

Normalement avec PDO, tu peux utiliser bindParam, bindValue et bindColumn qui fait tout ça.

Yentia
Auteur

merci de ta réponse, cependant j'ai rechercher ce que tu m'as dit mais je n'ai toujours pas compris comment je peux faire pour protéger mon bout de code.

Comme tu peux le constater mes données arrive dans un tableau, c'est ce qui me pose problème pour faire un bind, je sais pas comment m'y prendre.

Yentia
Auteur

D'accord je te remercie de ton aide,

j'ai encore une petite question auquel tu pourrais m'éclairer peut être
pourquoi tu utilise bindParam et non pas bindValue ? quelle est la différence ?stp

merci encore

Peut etre peux tu m'aider pour mon post sur les regexp:
http://www.grafikart.fr/forum/topic/6731

Yentia
Auteur

D'accord merci de ton aide.

je vais regarder concernant ton sujet