84mickael Posté 2 Février 2006 Posté 2 Février 2006 Salut... Je me pose une petite question à propos de la protection des caractères spéciaux SQL dans une requête. Il existe la fonction mysql_real_escape_string, mais je me demande s'il est nécessaire de l'utiliser dans mon cas, et si oui, quand l'utiliser. Voilà comment je code mes données avant de faire une requête : function code($txt){ $txt=trim($txt); $txt=htmlspecialchars($txt,ENT_QUOTES); $txt=purge_iso88591($txt); return $txt;}function purge_iso88591($txt){ $cp1252=array ( "\x80"=>'€', // EURO SIGN "\x82"=>'‚', // SINGLE LOW-9 QUOTATION MARK "\x83"=>'ƒ', // LATIN SMALL LETTER F WITH HOOK "\x84"=>'„', // DOUBLE LOW-9 QUOTATION MARK "\x85"=>'…', // HORIZONTAL ELLIPSIS "\x86"=>'†', // DAGGER "\x87"=>'‡', // DOUBLE DAGGER "\x88"=>'ˆ', // MODIFIER LETTER CIRCUMFLEX ACCENT "\x89"=>'‰', // PER MILLE SIGN "\x8a"=>'Š', // LATIN CAPITAL LETTER S WITH CARON "\x8b"=>'‹', // SINGLE LEFT-POINTING ANGLE QUOTATION "\x8c"=>'Œ', // LATIN CAPITAL LIGATURE OE "\x8e"=>'Ž', // LATIN CAPITAL LETTER Z WITH CARON "\x91"=>'‘', // LEFT SINGLE QUOTATION MARK "\x92"=>'’', // RIGHT SINGLE QUOTATION MARK "\x93"=>'“', // LEFT DOUBLE QUOTATION MARK "\x94"=>'”', // RIGHT DOUBLE QUOTATION MARK "\x95"=>'•', // BULLET "\x96"=>'–', // EN DASH "\x97"=>'—', // EM DASH "\x98"=>'˜', // SMALL TILDE "\x99"=>'™', // TRADE MARK SIGN "\x9a"=>'š', // LATIN SMALL LETTER S WITH CARON "\x9b"=>'›', // SINGLE RIGHT-POINTING ANGLE QUOTATION "\x9c"=>'œ', // LATIN SMALL LIGATURE OE "\x9e"=>'ž', // LATIN SMALL LETTER Z WITH CARON "\x9f"=>'Ÿ' // LATIN CAPITAL LETTER Y WITH DIAERESIS ); return strtr($txt,$cp1252);} Pensez-vous qu'après ce traîtement, la fonction mysql_real_escape_string soit encore utile ? Merci
petit-ourson Posté 2 Février 2006 Posté 2 Février 2006 Euh, tu fais tes insertion où ? Il faut l'utiliser au moment des insertions ...
84mickael Posté 2 Février 2006 Auteur Posté 2 Février 2006 (modifié) Euh, tu fais tes insertion où ? Il faut l'utiliser au moment des insertions ... <{POST_SNAPBACK}> Pour chaque champ saisi dans un formulaire (par exemple), soit je récupère sa valeur entière (intval), soit je l'encode avec ma fonction code. Modifié 2 Février 2006 par 84mickael
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant