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 source partiel du second 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" /> [...]
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 \\\'.
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&infos_prenom=<?php echo rawurlencode($prenom); ?>"> [...]
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
Partager