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 :

[SQL] problème avec les guillemets et rawurldecode


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut [SQL] problème avec les guillemets et rawurldecode
    Bonjour,

    J'ai un formulaire en deux fichiers. Le premier fichier est constitué du formulaire, le second effectue les requêtes SQL.

    Si tous les champs ne sont pas remplis, le deuxième fichier redirige vers le premier et renvoie les informations déjà remplies.

    Si le premier fichier trouve des $_GET, il rempli les input.

    Le problème survient lorsqu'il y a des ' (guillemets) qui sont introduit dans le champs. Lorsqu'il est redirigé vers la première page, il met \\\' au lieu de '.

    Code source partiel du premier fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [...]
     
    <input type="text" name="prenom" value="<?php if ($_GET['infos_prenom'] != '') {echo stripslashes(rawurldecode($_GET['infos_prenom']));} ?>" size="20" />
     
    [...]
    Code source partiel du second fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [...]
     
    $prenom = htmlspecialchars($_POST['prenom']);
     
    [...]
     
    <meta http-equiv="refresh" content="0; url=index.php?page=membres/mes_informations_changement&amp;infos_prenom=<?php echo rawurlencode($prenom); ?>">
     
    [...]
    Normallement lors de la redirection, la variable a juste un \ devant chacun de ces guillemets. Avec le rawurlencode, le \' devient %5C%27. Donc lorsqu'on utilise rawurldecode il devrait remplacer par \' et non par \\\'.

    C'est là que ce situe le problème. Pourquoi dans le premier fichier il traduit %5C%27 par \\\' et non pas par \' ?

    D'avance merci pour vos réponses.

    xenos

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    j'ai fait une page d'essai avec ton code et je ne trouve pas ton résultat

    tu n'aurais pas uun addslashes quelque part dans ton code ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Peut être un problème du à magic_quotes_gpc().... Regardes si c'est activé. Si c'est le cas, c'est sans doute lui qui te rajoute automatiquement des backslash impromptus.

  4. #4
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    c clair que c'est ca mate get_magic_quote plus precis if get_magic_quote() stripslashes

  5. #5
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut
    Merci pour vos réponses.

    En effet, c'est bien cette option qui est activé. Je peux la supprimer dans Wamp, par contre sous OVH il semblerait que ça ne soit pas possible ...

    Comment faire dans ce cas ?

    J'ai remarqué qu'il y a une requête qui permet de savoir si l'option est activé ou non, mais je ne peux pas rajouter un code sur chaque champs de chaque formulaire si c'est activé faire de telle manière et si ça ne l'est pas de telle manière ...

    J'en aurai pour des heures à mettre ça sur tout le site, ça augmentera le temps de traitement, la probabilité d'avoir des erreurs, ... alors qu'en soit il suffit uniquement de désactiver une simple option.

    Comment faire dans ce cas pour le désactiver sur le site ou alors faire un code qui fonctionne même si c'est activé ou non ?

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

Discussions similaires

  1. Problème avec les guillemets
    Par Gobelins dans le forum Langage
    Réponses: 1
    Dernier message: 29/03/2011, 00h15
  2. Problème avec les guillemets
    Par domux dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2007, 13h26
  3. [SQL-Server] ms sql server et php : problème avec les caractères accentués
    Par stephane9422 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/12/2005, 17h45
  4. Problème avec les curseurs SQL SERVER
    Par stefostillrise dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/11/2005, 13h09
  5. [SQL] problème avec les date et les group By
    Par Stef784ever dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2004, 09h18

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