Renseignement sur "addslashes" et mysql

lilou54
Invité n'ayant pas de compte PHPfrance

16 juin 2006, 11:33

Salut,
J'ai creer un petit script avec un enregistrement en BDD alimenté par un formulaire.
J'ajoute devant chaque variable "addslashes" afin d'éviter les erreurs lors de l'enregistrement en BDD. (en local avec easyphp)
Mais lorsque je mais mon site en ligne l'addslashes n'est plus necessaire et au contraire ajoute un "/" devant l'appostrophe à chaque modif...
Y a t il un parametrage à modifier afin que addslashes soit pris en compte puisque je l'ai ajouté partout ??
Merci pour votre aide

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

16 juin 2006, 11:40

En fait, il est possible de configurer un serveur pour qu'il fasse automatiquement le addslashes. c'est la directive magic_quote_gpc.

Si ton hebergeur est configuré de cette manière, c'est comme si tu faisait addslashes(addslashes(...)) ce qui protége non seulement les caractères sensible, mais les \ que le 1er addslashes ont ajoutés

Pour mettre le addslashes quand magic_quote_gpc est désactivé sinon, rien, tu peut utiliser le code suivant
//Si la directive magic_quote_gpx est désactivé
if (!get_magic_quotes_gpc()) {
   //On fait le addslashes
   $lastname = addslashes($_POST['lastname']);
} else {
   //Sinon il est fait tout seul
   $lastname = $_POST['lastname'];
}
Pour faciliter l'utilisation de ce code, tu peut le mettre dans une fonction et remplacer tes appels à addslashes par un appel à cette fonction
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

lilou54
Invité n'ayant pas de compte PHPfrance

16 juin 2006, 11:45

OK, et peut on voir cet fonction dans phpinfo et la modifier en local(easyphp)?
Merci pour ta réponse

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

16 juin 2006, 11:51

tout a fait, dans le phpinfo, si tu recherches, magic_quote_gpc, tu devrais voir son statut.

Et tu peut le modifier dans le php.ini
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

lilou54
Invité n'ayant pas de compte PHPfrance

16 juin 2006, 11:57

Merci pour ton aide et bonne journée