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

Résolu/Fermé
Nowne Messages postés 89 Date d'inscription samedi 30 octobre 2010 Statut Membre Dernière intervention 7 mars 2011 - 19 janv. 2011 à 22:13
Nowne Messages postés 89 Date d'inscription samedi 30 octobre 2010 Statut Membre Dernière intervention 7 mars 2011 - 21 janv. 2011 à 22:25
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 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 503
21 janv. 2011 à 18:06
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 samedi 30 octobre 2010 Statut Membre Dernière intervention 7 mars 2011 4
19 janv. 2011 à 23:40
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 samedi 30 octobre 2010 Statut Membre Dernière intervention 7 mars 2011 4
21 janv. 2011 à 22:25
Merci avion-f16, comme d'habitude !
0