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 :

PB Accent CGI


Sujet :

Web Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 4
    Points
    4
    Par défaut PB Accent CGI
    Bonjour,

    j'ai un problème de gestion d'accent via mon script CGI perl test.pl et je ne suis pas sur si le problème vient de mon code perl ou si cela vient de ma config : (serveur AIX/ORACLE 9.2) ? donc je poste le problème sous perl



    Voici mon code :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    #!/usr/local/bin/perl
     
     
     
     
     
    use CGI qw/:standard/;
     
    use DBI;
     
    use strict;
     
    my $cgi = new CGI;
     
     
     
    my $oracle_host = 'serveur';
     
    my $oracle_dbsid = 'DBName';
     
    my $oracle_user = 'user';
     
    my $oracle_passwd = 'pass';
     
    $cgi->default_dtd('-//W3C//DTD HTML 4.01 Transitional//EN');
     
     
     
                print header(-charset =>'ISO-8859-1',
     
    	    		 -encoding =>'ISO-8859-1'),
     
                      start_html('A Simple Example'),
     
                      h1('A Simple Example'),
     
                      start_form,
     
                      "What's your name? ",textfield('name'),p,
     
                      "What's the combination?", p,
     
                      checkbox_group(-name=>'words',
     
                                     -values=>['eenie','meenie','minie','moe'],
     
                                     -defaults=>['eenie','minie']), p,
     
                      "What's your favorite color? ",
     
                      popup_menu(-name=>'color',
     
                                 -values=>['red','green','blue','chartreuse']),p,
     
                      submit,
     
                      end_form,
     
                      hr;
     
     
     
                 if (param()) {
     
                     print "Your name is ",em(param('name')),p,
     
                           "The keywords are: ",em(join(", ",param('words'))),p,
     
                           "Your favorite color is ",em(param('color')),
     
                           hr;
     
    		      #TEST INSERT EN BASE
     
    		      	my $name = param('name');
     
    			my $req = "INSERT INTO TEST (NOM) VALUES (?)";
     
    			my $dbh = DBI->connect("dbi:Oracle:host=$oracle_host;sid=$oracle_dbsid", $oracle_user, $oracle_passwd);
     
    			my $sth = $dbh->prepare($req) or die $dbh->errstr;
     
                            $sth->execute($name) or die $dbh->errstr;
     
                            $sth->finish;
     
     
     
     
     
    print "Insertion du nom :" .param('name') ."<br>";
     
     
     
    #affichage
     
    my $sth = $dbh->prepare("SELECT NOM FROM TEST");
     
    $sth->execute;
     
    print "Affichage en base: \n";
     
    while (my @row = $sth->fetchrow_array) {
     
                    print $row[0]."\n";
     
            }
     
     
     
    }
     
    end_html();
    alors quand je lance mon script en ligne de commande
    test.pl name='évenement'
    le script me renvoie bien "évenement" et l'insertion en base montre bien "évenement"

    par contre si j'utilise un navigateur (ie ou firefox) et que je mette évenement , là la valeur renvoyait par le POST montre bien évenement mais l'insertion en base montre "ivenement" !! Et la c'est le drame...

    Comme vous pouvez le voir dans le script j'essaie de forcer l'encodage en iso-8859-1 (français) mais cela ne fonctionne pas...j'avoue que je suis dessus depuis un moment et que je ne comprends pas !!

    Je sais que je pourrais encrypter en html via le module HTML::Entities mais je pense qu'il doit y avoir une solution sans cela.

    De plus lors d'une insertion via sqlplus à distance les accents sont gérés donc la couche SQLNET n'est à priori pas en cause !!

    Merci de votre retour,

    @+

    chris

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 4
    Points
    4
    Par défaut pb d'accent en base résolu
    le pb est résolu,

    je laisse la reponse pour ceux qui un jour auront ce pb :
    enfait c'etait les varibles d'environnements qui étaient mal positionnés (NLS_PATH,....)

    et voila, maintenant c'est bon les accents sont gérés en base .



    @+

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

Discussions similaires

  1. CGI + get + Accent
    Par FM_UA dans le forum Web
    Réponses: 3
    Dernier message: 11/12/2009, 18h41
  2. Problème d'accent avec formulaire cgi
    Par vodevil dans le forum Web
    Réponses: 3
    Dernier message: 15/04/2006, 11h48
  3. [Kylix] [cgi] pb déploiement appli avec connexion MySQL [rés
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 06/08/2002, 20h09
  4. [Kylix] [cgi] ne trouve pas libsqlmy.so.1 !
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 04/07/2002, 15h15

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