par
Ryle » 19 févr. 2008, 09:22
Ca dépend de ce que contiennent tes variables
Le but de l'échappement d'un caractère (quel qu'il soit) est d'informer le script que dans la chaine concernée, celui-ci doit être considéré comme le caractère qu'il représente et non comme une instruction spéciale.
Les chaines " l'apostrophe " et ' l\'apostrophe ' sont rigoureusement identiques. L'échappement permet ici de dire à php que mon apostrophes est bien le caractère apostrophe et pas la fin de la chaine.
Le but des magic quotes est principallement destiné à te faciliter l'insertion de ta variable dans une requête sql qui n'est rien de plus qu'une chaine de caractère. Donc pour que sql ne soit pas perturbé et que ta requête ne soit pas erronée, magic quotes protège apostrophe et guillemets. En effet les requêtes :
INSERT INTO ... VALUES ( ' l'apostrophe ' );
et
INSERT INTO ... VALUES ( ' l\'apostrophe ' );
Ne sont pas les même, la première tentera d'insérer la valeur ' l', et génèrera une erreur sur l'instruction "apostrophe ' " (commande non reconnue, etc.), tandis que la seconde sera enregistrée correctement.
Le but d'un addslashes ou des magic quotes est donc principallement destiné à protéger une valeur lorsque tu utilises celle-ci dans une chaine (sql, javascript, etc.)