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

Langage PHP Discussion :

utilisation mysql_real_escape_string + magic_quotes


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Points : 166
    Points
    166
    Par défaut utilisation mysql_real_escape_string + magic_quotes
    Bonjour, j'aurais une question sur l'utilisation de cette fonction ou du moins besoin d'une confirmation.

    Dans la documentation, il est dit qu'il faut utiliser la fonction "stripslashes" avant si magic_quotes est activé.

    Un ami, lui trouvait logique de faire stripslashes(mysql_real_escape_string(...))

    La donnée reçue possède déjà les anti-slashs si on a les magic_quotes ?

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    php.net propose un bout de code qui résume assez bien le problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //si les magic quotes sont actives, utilisation de stripslashes
    if (get_magic_quotes_gpc()) {
        $lastname = stripslashes($_POST['lastname']);
    }
    else {
        $lastname = $_POST['lastname'];
    }
     
    // Si vous utilisez MySQL
    $lastname = mysql_real_escape_string($lastname);
     
    $sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
    L'idée étant que les magic quotes ajoutent des slashes aux données POST et compagnie, la logique par rapport ce qu'utilisait ton ami ce serait plutot mysql_real_escape_string(stripslashes(...));.

    Le mieux reste quand même de désactiver les magic quotes

  3. #3
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 391
    Points
    9 391
    Par défaut
    Il est préférable de tester l'activation des magic_quotes avant de faire un stripslashes().
    Car cette dernière enlève un slash où qu'il se trouve.

    Ainsi deux chaînes, l'une passant sur un serveur avec magic_quotes et l'autre sans :
    une chaîne avec un \ pour l'éclater
    Une chaîne avec un \ pour l\'éclater

  4. #4
    Membre habitué
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Points : 166
    Points
    166
    Par défaut
    Ok merci. Oui c'est exactement ce que je fais. Merci pour la confirmation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Utilisation de la fonction mysql_real_escape_string
    Par Whombat dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/01/2009, 08h22
  2. [MySQL] Utilisation de la fonction mysql_real_escape_string
    Par zabdaniel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/03/2008, 11h15
  3. Réponses: 1
    Dernier message: 30/12/2006, 23h54
  4. Réponses: 3
    Dernier message: 27/11/2006, 19h00
  5. [SGBD] Utilisation de mysql_real_escape_string()
    Par Space Cowboy dans le forum Requêtes
    Réponses: 1
    Dernier message: 27/11/2005, 11h24

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