IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Des slashs dans les chaines insérées en base de données


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut Des slashs dans les chaines insérées en base de données
    Bonjour,

    Lorsque j'ajoute une chaine dans une base de données protégé par mysql_real_escape_string je me retrouve en base de données avec des / devant les guillemets et simple quote tels que par exemple : l'avenir devient l\'avenir
    Est-ce normal ? Et comment fait-on pour afficher par la suite les données correctement. Soit les / ne doivent pas être inséré dans la base de données soit oui mais dans ce cas c'est assez étrange et il faut les enlever à chaque affichage mais de quel manière ?

  2. #2
    Membre expérimenté Avatar de Stopher
    Homme Profil pro
    Responsable technique
    Inscrit en
    Juin 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 198
    Par défaut
    Slt ,
    oui c'est tout à fait normal , celà permet d'échapper les caractères spéciaux afin d'éviter les injections sql .

    Ensuite pour l'affichage , il te faudra passer tes données via la fonction :

    stripslashes()

    http://fr2.php.net/manual/fr/function.stripslashes.php

    cdt,
    Ch.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    On aurait pas besoin d'appeler stripslashes à l'affichage si l'échappement était correctement réalisé dès le départ.

    Vos données ne seraient pas, initialement, des données extérieures (méthode POST, GET, ...) ? Si c'est le cas, vérifier que magic_quotes_gpc n'est pas actif sur votre serveur (dans un phpinfo par exemple) parce que ça va faire un peu double emploi avec mysql_real_escape_string.

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    Les données sont passées en POST et stockées dans la base de données, je fais désormais uniquement un mysql_escape_string de la zone passé en POST directement en base de données mais celà ajoute un / avant les caractères spéciaux, çà fait bizarre dans la base de données. Est ce vraiment normal d'avoir les données avec des / dans la base de données avant des caractères comme le ' ??? (ex : l'avenir devient l/'avenir)
    magic_quotes_gpc est à ON sur notre serveur selon le phpinfo

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    L'idéal serait donc de désactiver magic_quotes_gpc (d'autant plus qu'à terme cette fonctionnalité n'existera plus).

    Parce que, dans le cas des données POST, magic_quotes_gpc réalise un premier échappement et vous en effectuez ensuite un second avec mysql_real_escape_string. D'où les backslahs superflus/indésirables.

  6. #6
    Membre expérimenté Avatar de Stopher
    Homme Profil pro
    Responsable technique
    Inscrit en
    Juin 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 198
    Par défaut
    Citation Envoyé par julp Voir le message
    L'idéal serait donc de désactiver magic_quotes_gpc (d'autant plus qu'à terme cette fonctionnalité n'existera plus).

    Parce que, dans le cas des données POST, magic_quotes_gpc réalise un premier échappement et vous en effectuez ensuite un second avec mysql_real_escape_string. D'où les backslahs superflus/indésirables.
    Merci pour cette info ,
    J'utilisais toujours stripslashes à la sortie de données sans réellement faire attention de la provenance de ces slashes !

    Ch.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/05/2015, 18h55
  2. ajout clé primaire dans les table d'une base de données
    Par khaled1981 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 12/02/2011, 11h45
  3. Réponses: 2
    Dernier message: 26/12/2008, 14h54
  4. pb des blans dans les chaine de caractere
    Par Julien666 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/07/2007, 00h47
  5. Des images dans les bases de données !
    Par micky57 dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/03/2006, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo