[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&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. :D
xenos