[REGLE]Question sur htmlspecialchars - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [REGLE]Question sur htmlspecialchars (/showthread.php?tid=588) Pages :
1
2
|
[REGLE]Question sur htmlspecialchars - Archange - 30-12-2006 Bonjour bonjour, J'ai une petite question sur le htmlspecialchars, Donc, j'avais zapper qu'il fallait le mettre sur les POST, et enfaite ma question est dois-je mettre htmlspecialchars sur TOUTES mes variables POST ? ( dans les if , les calculs....) Merci A oui aussi ,htmlspecialchars ou bien htmlentities ? RE: Question sur htmlspecialchars - Loetheri - 30-12-2006 Cela dépend ce que tu veux faire. Tu veux insérer dans une DB ? utilise mysql_escape_real_string() Tu veux afficher en toute sûreté ? utilise htmlentities() Sinon dans les autres cas, tu n'as pas besoin. Mais j'ai peut-être oublié. RE: Question sur htmlspecialchars - zzarbi - 30-12-2006 Oui généralement le htmlentities, tu en as besoin que quand tu veux afficher une variable qui contient du code html... Pour eviter les hacks il faut utiliser mysql_escape_real_string(), pour le stockage en bdd. RE: Question sur htmlspecialchars - Aramiil - 30-12-2006 ou si tu veux et sécuriser ton affichage et éviter les hacks, utilise htmlentities() avec le second attribut à ENT_QUOTES. C'est bien sûr un choix dont on peut discuter vu qu'il alourdit légèrement les informations stoquées dans la base de données, en revanche il évite un appel répété à la fonction htmlentities et enlève les risques de piratages puisque les ' et " sont remplacés par leurs équivalents HTML. RE: Question sur htmlspecialchars - Archange - 30-12-2006 Oué enfaite je veu m'en servir en gros lorsque par exemple on met 15 unité de "truc" en vente , Merci de vos réponse, je n'etait pas sur entre htmlspecialchars et htmlentities car j'ai lus que le premier etait moin lourd, mais donc comme vous me dite que l'autre est mieux ...ba je prend l'autre Merci RE: Question sur htmlspecialchars - Loetheri - 30-12-2006 htmlentities est complètement inutile pour insérer dans une base de données ! Que cela soit avec un argument ou non ! htmlentities est utile pour l'affichage. Bien entendu, si vous souhaitez surcharger votre base de données, donnez-vous en à coeur joie ! RE: Question sur htmlspecialchars - Maegia - 31-12-2006 Crées-toi une petite fonction, du genre : function verification($x){ return htmlspecialchars(mysql_escape_real_string(htmlentities($x))); } J'ai mis ces fonctions là comme exemple nul, mais bien sûr, tu mets les fonctions que tu veux... Tu passes ensuite chacun de tes POST dans ta fonction de vérification, et voilà. RE: Question sur htmlspecialchars - Loetheri - 31-12-2006 Faites ce que vous voulez mais mysql_real_escape_string nécessite une connexion à une base MySQL. mysql_escape_string() lui n'en requiert pas. RE: Question sur htmlspecialchars - Archange - 31-12-2006 Merci de votre aide ba je vai prendre celui ci je pense mysql_escape_real_string() RE: Question sur htmlspecialchars - Aramiil - 02-01-2007 Loetheri a écrit :htmlentities est complètement inutile pour insérer dans une base de données ! Que cela soit avec un argument ou non !C'est un peu hors-sujet, mais... J'aimerais bien un argument là-dessus ? Si ce n'est que pour l'insertion, je suis d'accord, mais je répète mon argument : page a.php Code PHP :
page b.php Code PHP :
Dans un cas de ce genre, il est plus efficace d'utiliser htmlentities que mysql_(real)_escape_string. Parce que l'augmentation de taille de la base de données sera imperceptible (un caractère html corresponds à entre 5 et 10 octets au lieu d'un, sur une base de plusieurs mégas, c'est négligeable), et par contre cela va éviter d'appeler la fonction htmlentities à chaque chargement de la seconde page, qui est logiquement plus appellée que la première qui doit surement se situer quelque part à l'inscription ou au changement de profil. Donc gain de performance, et non perte comme ton message semble le suggérer. |