Trucs et astuces pour Dotclear - Clearbricks : découverte de dbLayer et de sa fonction select() - Commentaires2023-04-10T13:55:38+02:00DotAddict.orgurn:md5:3fcd4fae8459c68cb58f6e4d936995d0DotclearClearbricks : découverte de dbLayer et de sa fonction select() - Martiusurn:md5:18f5e74ab6b30e1270fced87e11ae2d02009-10-10T13:26:42+02:002009-10-10T12:26:42+02:00Martius<p>@psycho<br />
PDO a été intégré à PHP à partir de la version 5.1, et il me semble Dotclear se veut compatible avec PHP 5.0. En plus, UDBMS offre de nombreuses fonctionnalités qui ne sont pas inclues à PDO, comme les outils permettant de créer ou mettre à jour très facilement le schéma de la base de données.</p>Clearbricks : découverte de dbLayer et de sa fonction select() - Moeurn:md5:74b72e1d9f134362a4f5cb5d5535488f2009-05-03T20:28:15+02:002009-05-03T19:28:15+02:00Moe<p>@psycho : peut-être que PDO n'existait pas lors du développement de Dotclear 2 ou que PDO n'est pas disponible chez tous les hébergeurs ? il faudrait poser la question au développeur de Dotclear et de Clearbricks.</p>Clearbricks : découverte de dbLayer et de sa fonction select() - psychourn:md5:679fe99b6b1daa235ecbe117ffcc85a12009-05-03T19:24:47+02:002009-05-03T18:24:47+02:00psycho<p>bonjour,</p>
<p>pourquoi vous avez créé une class pour connection BD puisque PHP depuis la version 5.1 il integre PHP Data Object (PDO) cela permet "PDO fournit une interface d'abstraction à l'accès de données, ce qui signifie que vous utilisez les mêmes fonctions pour exécuter des requêtes ou récupérer les données quelque soit la base de données utilisée" ce qui va vous évitez plein de class et alléger votre code ;)</p>Clearbricks : découverte de dbLayer et de sa fonction select() - Moeurn:md5:00163593abde59987c48d7607e2febf02008-12-24T03:41:19+01:002008-12-24T03:41:19+01:00Moe<p>Merci beaucoup Pep !</p>Clearbricks : découverte de dbLayer et de sa fonction select() - Pepurn:md5:788a9ff3d71efe23d8ca7af51c9d84852008-12-24T02:23:30+01:002008-12-24T02:23:30+01:00Pep<p>J'ai oublié de répondre à la toute première question : non, il n'y a pas de nettoyage par défaut des variables POST. :-)</p>Clearbricks : découverte de dbLayer et de sa fonction select() - Pepurn:md5:dc17e439752fabe47d4c3f80f2a3f3bd2008-12-24T02:17:00+01:002008-12-24T02:17:00+01:00Pep<p><strong>Moe ></strong> Si tu passes par un <code>cursor</code> du dbLayer, toutes les valeurs membres sont systématiquement échappées au moment de l'invocation de <code>cursor::insert()</code> ou <code>cursor::update()</code>. Dans ce cas là, tu n'as qu'à te préoccuper d'échapper le complément optionnel de clause WHERE accepté comme argument par <code>cursor::update()</code>.</p>
<p>Par contre, si tu construis toi-même des requêtes d'insertion/mise à jour, il faudra que tu veilles toi-même à bien passer toutes les valeurs par <code>dbLayer::escape()</code>.</p>Clearbricks : découverte de dbLayer et de sa fonction select() - Moeurn:md5:047341cd31ff7ea12f6900a9272a5d912008-12-23T18:47:59+01:002008-12-23T18:47:59+01:00Moe<p>@Da Scritch : je ne m'étais jamais posé la question ...</p>
<p>@Pep : est-ce que Dotclear fait le ménage dans les requêtes POST ? Je regarde comment se fait l'insertion d'un commentaire et je ne vois pas d'utilisation de escape(). Il faut utiliser escape() pour chaque insertion ou mise à jour dans la base de données ?</p>Clearbricks : découverte de dbLayer et de sa fonction select() - Pepurn:md5:42850d1c54d7803d6ba259fb257b93bf2008-12-23T17:04:34+01:002008-12-23T17:04:34+01:00Pep<p><strong>Da Scritch ></strong> Tu disposes d'une méthode escape() via le dbLayer.<br />
De la même façon que tu utiliserais un <code>mysql_real_escape_string($var)</code> en temps normal, tu feras un <code>$con->escape($var)</code> en passant par le dbLayer.</p>
<p>En plus de cette série d'articles, tu peux également consulter : <a href="http://dev.dotclear.org/code/2/classdbLayer.html" title="http://dev.dotclear.org/code/2/classdbLayer.html" rel="ugc nofollow">http://dev.dotclear.org/code/2/clas...</a></p>Clearbricks : découverte de dbLayer et de sa fonction select() - Da Scritchurn:md5:7697825a102a421427a17e9f78ace2b52008-12-18T15:06:25+01:002008-12-18T15:06:25+01:00Da Scritch<p>OK, ça c'est génial car on aura pas à se poser la question de la base de données qui est derrière, et qu'on peut renvoyer la tartine par objet.</p>
<p>Néanmoins, il y a une question qui me chiffonne : comment protège-t-on les données insérées dans les requêtes sans coup malicieux genre injection SQL ? on continue à utiliser mysqli_real_escape_string ?</p>