PHP : échappe intenpestif des caractères...

Résolu
Nowne Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   -  
Nowne Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je viens de mettre mon site en ligne, et j'ai remarqué que lorsque l'on poste un message dans la BDD, php m'échappe les guillemets simple et double. Je comprend pas, ca ne me le fait pas en localhost chez moi, mais ca le fait quand je met ma page en ligne. Des solutions ?

Merci d'avance !


A voir également:

3 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Salut.

C'est à cause de la fonction magic_quotes.
Elle sécurise les variables GPC (GET, Cookies et POST) en échappant les caractères susceptibles de créer une injection SQL.

Cette option n'est pas activée sur tous les serveurs (la preuve ...), est rendue obsolète depuis PHP 5.3.0, et sera supprimée en PHP6.
Pourquoi la supprimer ? Parce que toutes les données ne sont pas destinées à être enregistrées dans une base de données, donc ça peut être une source de perte de temps qu'on on doit annuler son effet.

Pour la désactiver :
http://fr.php.net/manual/fr/security.magicquotes.disabling.php

Par contre, n'oublie pas de sécuriser toi-même tes variables avec mysql_real_escape_string() ou PDO::quote().

Pour afficher les données, utilise stripslashes().
3
Nowne Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   4
 
Un simple stripslashes() autour de la variable des données pour retirer les "\".

Très très simple... =)
1
Nowne Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   4
 
Merci avion-f16, comme d'habitude !
0