dimb Posted February 4, 2013 Share Posted February 4, 2013 Bonjour à tous, j'essaye de "developper" un module dans lequel les utilisateurs pourront remplir des champs texte qui seront ajouté dans la base de donnée. En php j'utilisais des requête préparée pour empecher les injections mais là j'aurais voulu savoir si la méthode add() de la classe objectmodel se suffisait à elle-même? Ma question est peut etre pas claire et je débute un peu sur prestashop. J'ai lu cette page http://www.prestashop.com/blog/fr/les_bonnes_pratiques_de_la_classe_db_sur_prestashop_14/ , mais la méthode add comporte déjà les requête. bref j'ai été voir dans le code mais j'avoue ne pas forcément comprendre directement ce que faite cette méthode. Bref, certains l'utilisent-ils? (j'ai suivi ce tuto http://www.prestarocket.com/blog/creer-module-mvc-prestashop-1-5/ très bien fait et adapté au 1.5 apparament). merci d'avance. Link to comment Share on other sites More sharing options...
franckm1000 Posted February 4, 2013 Share Posted February 4, 2013 Pour les requêtes, utilises la classe Db. Elle possède plusieurs possibilités. Par exemple: Db::getInstance()->ExecuteS($sql) insère un tableau multidimmensionnel Db::getInstance()->getRow($sql) donne la première valeur... Lis le tuto que tu donnais, il est très explicite. Tu remplaces simplement $sql par ta requête ('insert into...' 'select...' etc...) En plus cette classe peut être utilisée n'importe où notamment dans les modules. Link to comment Share on other sites More sharing options...
dimb Posted February 4, 2013 Author Share Posted February 4, 2013 (edited) J'avais bien compris ça mais d'après le tutoriel de prestarocket, on peut créer un modele objet étendant la classe objectmodel. et grace au tableau statique $definition, dans lequel on précise la table, il suffirait ensuite pour chaque instance de faire $monobject->add() pour l'ajouter à la table directement. Ce n'est pas la même méthode utilisé par les anciens tuto (qui doivent encore marcher), et ça semble être une nouveauté de la 1.5. Ainsi pour l'ajout je n'ai plus à utiliser la classe Db elle même. Edited February 4, 2013 by dimb (see edit history) Link to comment Share on other sites More sharing options...
Dev On Web Posted February 4, 2013 Share Posted February 4, 2013 @dimb : je t'invite à regarder la méthode add() présente dans la classe ObjectModel. Tu y verra qu'elle même fait appel à la classe BD ( et plus particulièrement à la méthode insert() ). En espérant t'avoir aidé Link to comment Share on other sites More sharing options...
dimb Posted February 4, 2013 Author Share Posted February 4, 2013 (edited) Merci dev on web, j'avais aussi remarqué ça. ma principale question était, protège t-elle des injections sql si on ajoute du texte dans la base de donnée? Pour savoir si je devais m'occuper de faire des sécurité supplémentaire ou non. J'ai peut-être pas saisie forcément les manière de proteger les requetes vu qu'au départ en php j'utilisais simplement des requêtes paramétrése. Edited February 4, 2013 by dimb (see edit history) Link to comment Share on other sites More sharing options...
Dev On Web Posted February 4, 2013 Share Posted February 4, 2013 Dans le doute, rien ne t'empêche de filtrer ta variable avant en plus Regarde du côté de pSQL(). Link to comment Share on other sites More sharing options...
dimb Posted February 4, 2013 Author Share Posted February 4, 2013 je vais regarder ça, ça a l'air de correspondre à mes besoins! merci Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now