Modérateur PHPfrance |
10684 Messages
05 oct. 2008, 16:28
Commençons déjà par éssayer de comprendre ce qui se passe, ensuite tu devrais trouver toi même quelle fonction utiliser à partir de leur description.
Si les magic quotes sont activées sur le serveur, alors php va automatiquement protéger toutes les valeurs transmises par GET et POST, en ajoutant un antislash devant les caractères à échapper (guillemets, apostrophes, antislash, etc.). Le but est de pouvoir balancer les valeurs directement dans une requête SQL sans s'embêter à les protéger.
Si elles ne sont pas activées, cette protection n'est pas faites automatiquement et c'est à toi de l'ajouter quand tu en as besoin avec un addslashes(), un mysql_real_escape_string() ou autre...
Si tes apostrophes apparaissent protégées dans ta base, c'est sans doute que toi et php les avez tous deux protégés (l'apostrophes " ' " protégée par php devient " \' ", puis protégée par toi devient " \\\' ", ce qui fait qu'en base et en modification tu vois apparaitre " \' ".)
Tu peux tester si les magic quotes sont activées en faisant appel à get_magic_quotes_gpc(). Tu sauras alors s'il faut ou pas protéger tes chaines

Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...