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 :

Petit souci avec mysql_escape_string [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Par défaut mysql_escape_string : échappements dans la sgbd
    Bonjour,

    j'utilise la fonction mysql_escape_string dans mon site pour éviter les injections SQL et sécuriser les données qui viennent de formulaires et qui doivent être rentrées dans la base avec mysql_query.

    Quand je teste en local, tout se passe très bien, les caractères spéciaux ne sont pas interprétés dans la requête et les données enregistrées dans la base ne contient pas les \ d'échappement.

    Mais quand je passe le site sur Web, en utilisant le serveur MySQL de Free, c'est là que ça se gâte Les données dans la base contiennent les \ qui ont été rajoutés pour échapper les caractères spéciaux. Du coup, quand je récupère et affiche ces données, les \ sont eux aussi affichés...

    J'ai essayé en utilisant la fonction mysql_real_escape_string mais j'obtiens le même résultat.

    Quelqu'un aurait-il une solution à mon problème ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Par défaut
    Je me réponds à moi-même, j'ai finalement trouvé la solution, si ça peut aider quelqu'un qui rencontre le même problème.

    En local, j'utilise EasyPHP qui par défaut désactive les magic_quotes. Sur le serveur de Free, elles sont activées et il faut donc faire un test pour ne pas "échapper les échappements" avec mysql_escape_string, sinon des \ pas très jolis se retrouveront dans la base.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(get_magic_quotes_gpc()){
        $name = $_POST['name'];
    }else{
        $name = mysql_escape_string($_POST['name']);
    }
    Avec ça, on vérifie si les magic quotes sont activées et le cas échéant, on échappe avec mysql_escape_string, ce qui permet de ne pas avoir de surprises en passant d'un serveur à un autre.

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

Discussions similaires

  1. petit soucis avec mon graveur
    Par Vador dans le forum Périphériques
    Réponses: 8
    Dernier message: 02/11/2005, 14h58
  2. petit soucis avec les listes
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/09/2005, 10h08
  3. Petit souci avec clause where
    Par ybruant dans le forum SQL
    Réponses: 1
    Dernier message: 21/07/2005, 22h10
  4. petit souci avec des variables avec des fonctions psql
    Par dust62 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/04/2005, 13h45
  5. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52

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