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

Web Perl Discussion :

[web] [DEBUTANT] Problème avec les formulaires


Sujet :

Web Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 95
    Points : 67
    Points
    67
    Par défaut [web] [DEBUTANT] Problème avec les formulaires
    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>";

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 95
    Points : 67
    Points
    67
    Par défaut
    Bon j'ai résolu le probleme en utilisant la librairie cgi-lib.pl. Merci quand même !

    (mais bon je ne vois pas comment faire si j'utilise pas cette librairie...)

  3. #3
    Membre habitué Avatar de rcageot
    Profil pro
    rien
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Points : 170
    Points
    170
    Par défaut
    voici le code que j'utilise
    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
     
    ##############################################################################
    # Gestion des codes entrants venant des CGI
    #
    # Acquisition de la nouvelle entree
    #------------------------------
    if( $ENV{'REQUEST_METHOD'} eq "GET" ) {
       $buffer=$ENV{'QUERY_STRING'} ;
    } else {
       read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}) ;
    }
     
    ###############################
    # Redirection des codes entrants
    #------------------------------
    @pairs = split(/&/, $buffer);
     
    foreach $pair (@pairs) {
       ($name, $value) = split(/=/, $pair);
     
       # decode les %-encoding
       $value =~ tr/+/ /;
       $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
     
       # Gestion des retour de formulaires à choix multiples
       $FORM{$name} .="\0" if (defined($FORM{$name}));
       $FORM{$name} .= $value;
     
     
       $FORM{$name} = $value;
    }
    regarde la partie decode les %-encoding

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 95
    Points : 67
    Points
    67
    Par défaut
    ouai c'est vrai que y'avais cette possibilité aussi mais j'avais la fleme de réfléchir à l'expression régulière :p

    Merci tout de même pour ce bout de code !

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

Discussions similaires

  1. [debutant] Problème avec les formulaires et le SQL
    Par Bistru dans le forum Langage SQL
    Réponses: 3
    Dernier message: 30/01/2010, 23h53
  2. [Système] Problème avec les formulaires
    Par Ludo75 dans le forum Langage
    Réponses: 9
    Dernier message: 02/02/2006, 11h13
  3. Réponses: 6
    Dernier message: 03/10/2005, 18h42
  4. Réponses: 6
    Dernier message: 19/05/2005, 11h06
  5. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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