Bonjour j'ai un problème avec mon formulaire. Lorsque je met des accents l'affichage va donner nimporte quoi. Exemple :
Si j'écris "Bonjour j'ai un problème avec le resultat de mon formulaire comme vous pouvez le voir" dans un TEXTAREA et que j'appuis sur VALIDER MON FORMULAIRE, sur l'autre page j'affiche le résultat suivant :
"bonjour+j%27ai+un+probl%e8me+avec+le+resultat+de+mon+formulaire+comme+vous+pouvez+le+voir"
En fait il écrit la variable telle qu'elle est passé dans l'URL. Que faire ? en php je n'avais pas ce soucis...
Voici le code source de mon fichier PERL, merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 #!/usr/bin/perl # récupère l'entrée standard dans la variable $in read(STDIN, $in, $ENV{CONTENT_LENGTH}); # la chaine $in est coupée suivant le caractère & et crée la liste @champs @champs = split(/&/,$in); # traitement de chaque élément $e de la liste @champs foreach $e (@champs) { # dissocie chaque élément, de la forme nom=valeur, # en une paire de variable (nom,valeur) ($nom, $valeur) = split(/=/,$e); # transforme tous les caractères saisis en minuscules $valeur =~ tr/A-Z/a-z/; # crée à partir du tableau @champs, # une liste associative %champs $champs{$nom}=$valeur; } # génére l'en-tête du document HTML renvoyé print("Content-Type: text/html\n\n"); # puis le document HTML print <<"SORTIE"; <?xml version="1.0" encoding="ISO-88591"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <HEAD><TITLE> Réponse </TITLE></HEAD> <BODY> <H2 ALIGN=CENTER>Réponse au questionnaire</H2> <CENTER><TABLE BORDER><TR> <TH>Nom du champ <TH>Valeur</TR> SORTIE # le traitement est ici réduit à afficher les valeurs transmises while (($nom, $valeur) = each(%champs)) { print "<TR><Td>$nom = </td><Td>$valeur</td></TR>"; } print "</TABLE></CENTER></BODY>";
Partager