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 :

get_magic_quotes_gpc()


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 196
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 196
    Par défaut get_magic_quotes_gpc()
    Bonjour,

    Je n'arrive pas a comprendre son role et comment elle intervient
    J'ai fais une recherche sur le web, et j'ai trouvé des explications, mais elle me reste toujours ambigue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    <?php
    echo get_magic_quotes_gpc();         // 1
    echo $_POST['lastname'];             // O\'reilly
    echo addslashes($_POST['lastname']); // O\\\'reilly
     
    if (!get_magic_quotes_gpc()) {
        $lastname = addslashes($_POST['lastname']);
    } else {
        $lastname = $_POST['lastname'];
    }
     
    echo $lastname; // O\'reilly
    $sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
    ?>

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 701
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 701
    Par défaut
    pour voir la documentation officielle d'une fonction, il suffit d'aller à l'adresse "php.net/" + le nom de la fonction
    par exemple tu peux aller à l'URL suivante pour la fonction "get_magic_quotes_gpc"
    http://php.net/get_magic_quotes_gpc

  3. #3
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut
    Les magic quote, c'est que PHP va ajouter automatiquement les shashes (\) aux requêtes POST ( et GET ??? )

    Si les magic quote sont activé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_POST['lastname'];             // O\'reilly
    Si les magic quote sont désactivé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_POST['lastname'];             // O'reilly

    Donc si on fait un addslashes() alors que les magic quotes sont activé, on met trop de shashes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo addslashes($_POST['lastname']); // O\\\'reilly
    Alors on vérifie si les magic quote sont activé. Si ce n'est pas le cas, on ajoute des slashes, sinon, on fait rien: c'est déjà fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (!get_magic_quotes_gpc()) {
        $lastname = addslashes($_POST['lastname']);
    } else {
        $lastname = $_POST['lastname'];
    }


    Sinon, moi j'ai 2 questions:
    1) par défaut, les magic quote sont elles activés ou pas ?
    2) Et ca s'applique seulement aux POST ou aussi au GET ?


    Je trouve ca pas très pratique moi .. les magic quote.

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par FMaz Voir le message
    Sinon, moi j'ai 2 questions:
    1) par défaut, les magic quote sont elles activés ou pas ?
    2) Et ca s'applique seulement aux POST ou aussi au GET ?
    Je trouve ca pas très pratique moi .. les magic quote.
    Bonjour l' Ami

    pour résumer et faire simple
    get_magic_quotes_gpc() est une fonction qui ne fait que répondre a la question est-ce que les Guillemets magiques sont actif OUI ou NON

    S'ils sont actifs, alors je n'ais pas a le faire avant d'écrire dans une base de donnée. (car ça ne sert qu'a cela,) on dit protéger les caractéres spéciaux ...

    Cette fonctionnalité (les Guillemets magiques) est OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 6.0.0. Nous vous encourageons vivement à ne plus l'utiliser.

    par contre a toute lecture de Base de données il faut supprimer ces \

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $UserNom=stripslashes($row['UserNom']);
    Si non pour le moment on écrit avant toute insertion en Base de donnée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     if(!get_magic_quotes_gpc() )
        {  $UserNom =addslashes($UserNom);  }
    Va lire ceci ...
    http://www.php.net/manual/fr/securit...uotes.what.php

  5. #5
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut
    Citation Envoyé par FoxLeRenard Voir le message
    Si non pour le moment on écrit avant toute insertion en Base de donnée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     if(!get_magic_quotes_gpc() )
        {  $UserNom =addslashes($UserNom);  }
    Bonjour l'ami !


    Pour, addslashes, grave erreur, la fonction protège très mal les données, il faut privilégier mysql_real_escape_string()

    Sinon, je sais très bien à quoi sert get_magic_quotes_gpc(), et je sais aussi que c'est deprecated. Mais ca ne répond pas exactement à mes 2 questions (si s'était bel et bien à moi que ta réponse s'adressait)

  6. #6
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Salut FMaz,

    1) depuis PHP 5 cette fonction est par défaut activé et a été supprimé dans PHP 6.
    2) On peut lire ceci dans http://www.php.net/manual/fr/security.magicquotes.what.php
    Citation Envoyé par php.net
    magic_quotes_gpc Affecte les données issues des requêtes HTTP (GET, POST, et COOKIE)

  7. #7
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par FMaz Voir le message
    Bonjour l'ami !


    Pour, addslashes, grave erreur, la fonction protège très mal les données, il faut privilégier mysql_real_escape_string()
    Ah bon mon Ami, et si j'écris mon texte dans un fichier texte je fais quoi

Discussions similaires

  1. Utilisation de la fonction get_magic_quotes_gpc!
    Par solaar dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/01/2009, 11h39
  2. Réponses: 21
    Dernier message: 30/03/2007, 16h21
  3. fonction get_magic_quotes_gpc(), c'est vraiment utile ?
    Par renaudjuif dans le forum Langage
    Réponses: 7
    Dernier message: 21/08/2006, 23h38
  4. [MySQL] Utilisation de "get_magic_quotes_gpc()"
    Par Tr@nkill dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 19/04/2006, 11h40
  5. [Tableaux] probleme avec get_magic_quotes_gpc
    Par FoxLeRenard dans le forum Langage
    Réponses: 3
    Dernier message: 17/03/2006, 21h13

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