Page 1 sur 1

Renseignement sur "addslashes" et mysql

Posté : 16 juin 2006, 11:33
par lilou54
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

Posté : 16 juin 2006, 11:40
par zeus
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

Posté : 16 juin 2006, 11:45
par lilou54
OK, et peut on voir cet fonction dans phpinfo et la modifier en local(easyphp)?
Merci pour ta réponse

Posté : 16 juin 2006, 11:51
par zeus
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

Posté : 16 juin 2006, 11:57
par lilou54
Merci pour ton aide et bonne journée