Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/02/2007, 15h40   #1
Membre habitué
 
Avatar de xenos
 
Inscription : septembre 2005
Messages : 402
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 402
Points : 140
Points : 140
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 :
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 :
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
xenos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2007, 00h32   #2
Membre émérite
 
Inscription : juin 2002
Messages : 1 013
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 013
Points : 959
Points : 959
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 ?
francis m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2007, 00h48   #3
Invité de passage
 
Homme
Développeur Web
Inscription : mai 2004
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2004
Messages : 9
Points : 2
Points : 2
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.
jvgamers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2007, 09h28   #4
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 797
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 797
Points : 1 688
Points : 1 688
c clair que c'est ca mate get_magic_quote plus precis if get_magic_quote() stripslashes
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2007, 13h34   #5
Membre habitué
 
Avatar de xenos
 
Inscription : septembre 2005
Messages : 402
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 402
Points : 140
Points : 140
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 ?
xenos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h16.


 
 
 
 
Partenaires

Hébergement Web