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