problems cgi ex cook book perl

J

john.swilting

I started again the example of cook book perl
chapter 19.14
He(It) does not walk(work) correctly can you m help to find the error
The error which appears it is Not of ecran for card
at /var/www/cgi-bin/vente.cgi line 24

help help help
i am french
i am beginner of perl
help help help

#!/usr/bin/perl -w

use strict;
use CGI qw:)standard escapeHTML);
use CGI::Carp qw(fatalsToBrowser);

my %Etats;

my $Ecran_actuel;

## hachage des documents et des fonctions

%Etats = (
'Défaut' =>\&document_de_garde,
'Chemises' =>\&chemise,
'Chaussures' =>\&chaussures,
'Passage à la caisse' =>\&passage_a_la_caisse,
'Carte' =>\&carte_de_credit,
'Commande' =>\&commande,
'Annnulation' =>\&document_de_garde,
);

$Ecran_actuel = param(".Etat") || "Défaut";
die "Pas d'écran pour $Ecran_actuel" unless $Etats{$Ecran_actuel};

## engendre le document courant

en_tete_standard();

while ( my ($nom_ecran,$fonction) = each %Etats){
$fonction->($nom_ecran eq $Ecran_actuel);
}

pied_de_page_standard();
exit;

########################################################################
## fonctions d'en-tete, de pied de page, de menu #######################
########################################################################

sub en_tete_standard {
print header(),
start_html(-Title => "Chemises", -BGCOLOR=>"White");
print start_form(); ##start_multipart_form()
##s'il faut exporter des fichiers sur le reseau
}

sub pied_de_page_standard { print end_form(), end_html() }

sub menu_boutique {
print p(defaults("Vider mon caddie"),
vers_doc("Chemises"),
vers_doc("Chaussures"),
vers_doc("Passage à la caisse"));
}

#######################################################################
## sous-programmes pour chaque écran ##################################
#######################################################################


## le document par defaut

sub document_de_garde {
my $actif = shift;
return unless $actif;

print "<H1>salut!</H1>\n";
print "bienvenue dans notre magasin d'habillement!\n",
print "faites votre choix dans le menu ci-dessous.\n";

menu_boutique();
}

## document à partir duquel commander une chemise

sub chemise {
my $actif = shift;
my @tailles = qw(XL L M S);
my @couleurs = qw(Noire Blanche);

my ($taille, $couleur, $compte) =
(param("taille_chemise"), param("couleur_chemise"),
param("nom_chemises"));

##verification des donnees reçus
if ($compte) {
$couleur = $couleurs[0]
unless grep { $_ eq $couleur } @couleurs;
$taille = $tailles[0]
unless grep {$_ eq $taille } @tailles;
param("couleur_chemise" , $couleur);
param("taille_chemise" , $taille);
}

unless ( $actif ) {
print hidden("taille_chemise") if $taille;
print hidden("couleur_chemise") if $couleur;
print hidden("nombre_chemises") if $compte;
return;
}

print h1("chemises");
print p("quelle chemise! cette petite merveille est\n","livree avec
toutes les options.doublure de luxe,\n",
"finitions avec toutes les options. doublure de luxe\n","finitions en
coton, et un col à en avoir les\n",
"Prix unitaire: 33.00\&nbsp;euros.");

print h2("options");
print p("nombre ?",textfield("nombre_chemises"));
print p("taille ?",popup_menu("taille_chemise",\@tailles ),
"couleur ?", popup_menu("couleur_chemise",\@couleurs ));

menu_boutique();

}


## document à partir duquel commander des chaussures

sub chaussures {
my $actif = shift;
my @tailles = qw(35 36 37 38 39 40 41 42 43 44 45 46 47 48);
my @couleurs = qw(Ivoire Noisette Ebene);

my ( $taille, $couleur, $compte) =
(param("taille_chaussure"), param("couleur_chaussures"),
param("nombre_chaussures"));

##verification des donnees reçus
if ( $compte ) {
$couleur = $couleurs[0]
unless grep { $_ eq $couleur } @couleurs;
$taille = $tailles[0]
unless grep { $_ eq $taille } @tailles;
param("couleur_chaussures",$couleur);
param("taille_chaussures", $taille);
}


unless ( $actif ) {
print hidden("taille_chaussures") if $taille;
print hidden("couleur_chaussures") if $couleur;
print hidden("nombre_chaussures") if $compte;
return;
}

print h1("chaussures");
print p("vous ne serez jamais aussi elegant que chausse de
ces\n", "souliers magnifiques\n",
"prix unitaires: 49.99\&nbsp;euros.");

print h2("options");
print p("nombre de paires?", textfield("nombre_chaussures"));
print p("pointure?", popup_menu("taille_chaussures",\@tailles));
print p("teinte?",popup_menu("couleur_chaussures",\@couleurs));

menu_boutique();

}

## document qui affiche la commande actuelle en attente de comfirmation

sub passage_a_la_caisse {
my $actif = shift;

return unless $actif;

print h1("confirmation de la commande");
print p("vous avez commande&nbsp;:");
print texte_commande();
print p("est-ce correct?\nn",
"choissisez «Carte» pour regler ces\n",
"objets, ou «chemises» ou\n",
"«chaussures» pour continuer vos courses.");
print p(vers_doc("carte"),
vers_doc("chemises"),
vers_doc("chaussures"));

}

## document pour ollecter les informations relatives à la carte de credit

sub carte_de_credit {
my $actif = shift;
my @gadgets = qw(Nom Adresse1 Adresse2 Ville Code_postal Pats Telephone
Carte Expire_en);

unless ( $actif ) {
print map { hidden($_) } @gadgets;
return;
}

print pre ( p ("Nom: ",textfield("Nom")),
p ("Adresse: ",textfield("Adresse1")),
p (" ",textfield("Adresse2")),
p ("Ville: ",textfield("Ville")),
p ("Code Postal: ",textfield("Code_postal")),
p ("Pays: ",textfield("Pays")),
p ("Telephone: ",textfield("Teléphone")),
p ("Carte numéro: ",textfield("Carte")),
p ("Expire en: ",textfield("Expire_en")));

print p ( "Selectionner «Commande» pour commander\n",
"ces objets. selectionner «Annulation»\n");

print p ( vers_doc("Commande"), vers_doc("Annulation"));
}

## document pour terminer une commande

sub commande {
my $actif = shift;

unless ( $actif) {
return;
}

## ici on verifie les valeurs donnees pour la carte de credit

print h1("Commandé\&nbsp;!");
print p("vous avez commandé ce qui suit:");
print texte_commande();

print p (defaults ("Retour au debut"));
}

## renvoie de l ' HTML pour la commande actuelle("vous avez ommande")

sub texte_commande {
my $html = '';

if ( param ("nombre_chemises")) {
$html .= p("vous avez commandé" , param("nombre_chemises"),
"chemises de taille", param("taille_chemise"),
" et de couleur " , param("couleur_chemise"),",");
}
if ( param ("nombre_chaussures")) {
$html .= p("vous avez comandé",param("nombre_chaussures"),
"paires de chaussures de pointures" ,
param("taille_chaussures"),
" et de teinte ", param ("couleur_chaussures"),".");
}
$html = p("Rien!") unless $html;
$html .= p("pour un prix total de ",calcule_prix());
return $html;
}

sub calcule_prix {
my $chemises = param("nombre_chemises") || 0 ;
my $chaussures = param("nombre_chaussures") || 0;
return sprintf("%.2f euros", $chemises * 33 + $chaussures * 49.99);
}

sub vers_doc { submit (-NAME => ".Etat", -VALUE => shift) }
 
R

RedGrittyBrick

john.swilting said:
I started again the example of cook book perl
chapter 19.14
He(It) does not walk(work) correctly can you m help to find the error
The error which appears it is Not of ecran for card

You have used google to translate your error message from French into
English. You shouldn't do this. See below.
at /var/www/cgi-bin/vente.cgi line 24

help help help
i am french
i am beginner of perl
help help help

#!/usr/bin/perl -w

use strict;
use CGI qw:)standard escapeHTML);
use CGI::Carp qw(fatalsToBrowser);

my %Etats;

my $Ecran_actuel;

## hachage des documents et des fonctions

%Etats = (
'Défaut' =>\&document_de_garde,
'Chemises' =>\&chemise,
'Chaussures' =>\&chaussures,
'Passage à la caisse' =>\&passage_a_la_caisse,
'Carte' =>\&carte_de_credit,
'Commande' =>\&commande,
'Annnulation' =>\&document_de_garde,
);

$Ecran_actuel = param(".Etat") || "Défaut";
die "Pas d'écran pour $Ecran_actuel" unless $Etats{$Ecran_actuel};

^^^^^^
That line is printing your error message - some French equivalent of
"Not of ecran for card" which suggests that the user entered some
variation of 'Carte.' or 'carte' or ' Carte'.

I'd change that line to
die "Pas d'écran pour '$Ecran_actuel'" unless $Etats{$Ecran_actuel};
so that you can clearly see leading spaces and other punctuation.

<rest of program snipped>
 
J

john.swilting

RedGrittyBrick said:
You have used google to translate your error message from French into
English. You shouldn't do this. See below.


^^^^^^
That line is printing your error message - some French equivalent of
"Not of ecran for card" which suggests that the user entered some
variation of 'Carte.' or 'carte' or ' Carte'.

I'd change that line to
die "Pas d'écran pour '$Ecran_actuel'" unless $Etats{$Ecran_actuel};
so that you can clearly see leading spaces and other punctuation.

<rest of program snipped>

I have correct the problemes of syntax
But after the form card(map) he indicates me 0 euro of command(order)
I do not understand


help help

#!/usr/bin/perl -w

use strict;
use CGI qw:)standard escapeHTML);
use CGI::Carp qw(fatalsToBrowser);

my %Etats;

my $Ecran_actuel;

## hachage des documents et des fonctions

%Etats = (
'Défaut' =>\&document_de_garde,
'Chemises' =>\&chemise,
'Chaussures' =>\&chaussures,
'Passage à la caisse' =>\&passage_a_la_caisse,
'Carte' =>\&carte_de_credit,
'Commande' =>\&commande,
'Annnulation' =>\&document_de_garde,
);

$Ecran_actuel = param(".Etat") || "Défaut";
die "Pas d'écran pour $Ecran_actuel" unless $Etats{$Ecran_actuel};

## engendre le document courant

en_tete_standard();

while ( my ($nom_ecran,$fonction) = each %Etats){
$fonction->($nom_ecran eq $Ecran_actuel);
}

pied_de_page_standard();
exit;

########################################################################
## fonctions d'en-tete, de pied de page, de menu #######################
########################################################################

sub en_tete_standard {
print header(),
start_html(-Title => "Chemises", -BGCOLOR=>"White");
print start_form(); ##start_multipart_form()
##s'il faut exporter des fichiers sur le reseau
}

sub pied_de_page_standard { print end_form(), end_html() }

sub menu_boutique {
print p(defaults("Vider mon caddie"),
vers_doc("Chemises"),
vers_doc("Chaussures"),
vers_doc("Passage à la caisse"));
}

#######################################################################
## sous-programmes pour chaque écran ##################################
#######################################################################


## le document par defaut

sub document_de_garde {
my $actif = shift;
return unless $actif;

print "<H1>salut!</H1>\n";
print "bienvenue dans notre magasin d'habillement\&nbsp;!\n",
print "faites votre choix dans le menu ci-dessous.\n";

menu_boutique();
}

## document à partir duquel commander une chemise

sub chemise {
my $actif = shift;
my @tailles = qw(XL L M S);
my @couleurs = qw(Noire Blanche);

my ($taille, $couleur, $compte) =
(param("taille_chemise"), param("couleur_chemise"),
param("nom_chemises"));

##verification des donnees reçus
if ($compte) {
$couleur = $couleurs[0]
unless grep { $_ eq $couleur } @couleurs;
$taille = $tailles[0]
unless grep {$_ eq $taille } @tailles;
param("couleur_chemise" , $couleur);
param("taille_chemise" , $taille);
}

unless ( $actif ) {
print hidden("taille_chemise") if $taille;
print hidden("couleur_chemise") if $couleur;
print hidden("nombre_chemises") if $compte;
return;
}

print h1("chemises");
print p("quelle chemise! cette petite merveille est\n","livree avec
toutes les options.doublure de luxe,\n",
"finitions avec toutes les options. doublure de luxe\n","finitions en
coton, et un col à en avoir les\n",
"Prix unitaire: 33.00 euros.");

print h2("options");
print p("nombre ?",textfield("nombre_chemises"));
print p("taille ?",popup_menu("taille_chemise",\@tailles ),
"couleur ?", popup_menu("couleur_chemise",\@couleurs ));

menu_boutique();

}


## document à partir duquel commander des chaussures

sub chaussures {
my $actif = shift;
my @tailles = qw(35 36 37 38 39 40 41 42 43 44 45 46 47 48);
my @couleurs = qw(Ivoire Noisette Ebene);

my ( $taille, $couleur, $compte) =
(param("taille_chaussure"), param("couleur_chaussures"),
param("nombre_chaussures"));

##verification des donnees reçus
if ( $compte ) {
$couleur = $couleurs[0]
unless grep { $_ eq $couleur } @couleurs;
$taille = $tailles[0]
unless grep { $_ eq $taille } @tailles;
param("couleur_chaussures",$couleur);
param("taille_chaussures", $taille);
}


unless ( $actif ) {
print hidden("taille_chaussures") if $taille;
print hidden("couleur_chaussures") if $couleur;
print hidden("nombre_chaussures") if $compte;
return;
}

print h1("chaussures");
print p("vous ne serez jamais aussi elegant que chausse de
ces\n", "souliers magnifiques\n",
"prix unitaires: 49.99 euros.");

print h2("options");
print p("nombre de paires?", textfield("nombre_chaussures"));
print p("pointure?", popup_menu("taille_chaussures",\@tailles));
print p("teinte?",popup_menu("couleur_chaussures",\@couleurs));

menu_boutique();

}

## document qui affiche la commande actuelle en attente de comfirmation

sub passage_a_la_caisse {
my $actif = shift;

return unless $actif;

print h1("confirmation de la commande");
print p("vous avez commande:");
print texte_commande();
print p("est-ce correct?\nn",
"choissisez «Carte» pour regler ces\n",
"objets, ou «chemises» ou\n",
"«chaussures» pour continuer vos courses.");
print p(vers_doc("Carte"),
vers_doc("Chemises"),
vers_doc("Chaussures"));

}

## document pour ollecter les informations relatives à la carte de credit

sub carte_de_credit {
my $actif = shift;
my @gadgets = qw(Nom Adresse1 Adresse2 Ville Code_postal Pats Telephone
Carte Expire_en);

unless ( $actif ) {
print map { hidden($_) } @gadgets;
return;
}

print pre ( p ("Nom\&nbsp;: ",textfield("Nom")),
p ("Adresse\&nbsp;: ",textfield("Adresse1")),
p (" ",textfield("Adresse2")),
p ("Ville\&nbsp;: ",textfield("Ville")),
p ("Code Postal\&nbsp;: ",textfield("Code_postal")),
p ("Pays\&nbsp;: ",textfield("Pays")),
p ("Telephone\&nbsp;: ",textfield("Teléphone")),
p ("Carte numéro\&nbsp;: ",textfield("Carte")),
p ("Expire en\&nbsp;: ",textfield("Expire_en")));

print p ( "Selectionner «Commande» pour commander\n",
"ces objets. selectionner «Annulation»\n");

print p ( vers_doc("Commande"), vers_doc("Annulation"));
}

## document pour terminer une commande

sub commande {
my $actif = shift;

unless ( $actif) {
return;
}

## ici on verifie les valeurs donnees pour la carte de credit

print h1("Commandé\&nbsp;!");
print p("vous avez commandé ce qui suit:");
print texte_commande();

print p (defaults ("Retour au debut"));
}

## renvoie de l ' HTML pour la commande actuelle("vous avez ommande")

sub texte_commande {
my $html = '';

if ( param ("nombre_chemises")) {
$html .= p("vous avez commandé" , param("nombre_chemises"),
"chemises de taille", param("taille_chemise"),
" et de couleur " , param("couleur_chemise"),",");
}
if ( param ("nombre_chaussures")) {
$html .= p("vous avez comandé",param("nombre_chaussures"),
"paires de chaussures de pointures" ,
param("taille_chaussures"),
" et de teinte ", param ("couleur_chaussures"),".");
}
$html = p("Rien!") unless $html;
$html .= p("pour un prix total de ",calcule_prix());
return $html;
}

sub calcule_prix {
my $chemises = param("nombre_chemises") || 0 ;
my $chaussures = param("nombre_chaussures") || 0;
return sprintf("%.2f\&nbsp;euros", $chemises * 33 + $chaussures *
49.99);
}

sub vers_doc { submit (-NAME => ".Etat", -VALUE => shift) }
 
J

john.swilting

john.swilting said:
RedGrittyBrick said:
You have used google to translate your error message from French into
English. You shouldn't do this. See below.


^^^^^^
That line is printing your error message - some French equivalent of
"Not of ecran for card" which suggests that the user entered some
variation of 'Carte.' or 'carte' or ' Carte'.

I'd change that line to
die "Pas d'écran pour '$Ecran_actuel'" unless $Etats{$Ecran_actuel};
so that you can clearly see leading spaces and other punctuation.

<rest of program snipped>

I have correct the problemes of syntax
But after the form card(map) he indicates me 0 euro of command(order)
I do not understand


help help

#!/usr/bin/perl -w

use strict;
use CGI qw:)standard escapeHTML);
use CGI::Carp qw(fatalsToBrowser);

my %Etats;

my $Ecran_actuel;

## hachage des documents et des fonctions

%Etats = (
'Défaut' =>\&document_de_garde,
'Chemises' =>\&chemise,
'Chaussures' =>\&chaussures,
'Passage à la caisse' =>\&passage_a_la_caisse,
'Carte' =>\&carte_de_credit,
'Commande' =>\&commande,
'Annnulation' =>\&document_de_garde,
);

$Ecran_actuel = param(".Etat") || "Défaut";
die "Pas d'écran pour $Ecran_actuel" unless $Etats{$Ecran_actuel};

## engendre le document courant

en_tete_standard();

while ( my ($nom_ecran,$fonction) = each %Etats){
$fonction->($nom_ecran eq $Ecran_actuel);
}

pied_de_page_standard();
exit;

########################################################################
## fonctions d'en-tete, de pied de page, de menu #######################
########################################################################

sub en_tete_standard {
print header(),
start_html(-Title => "Chemises", -BGCOLOR=>"White");
print start_form(); ##start_multipart_form()
##s'il faut exporter des fichiers sur le reseau
}

sub pied_de_page_standard { print end_form(), end_html() }

sub menu_boutique {
print p(defaults("Vider mon caddie"),
vers_doc("Chemises"),
vers_doc("Chaussures"),
vers_doc("Passage à la caisse"));
}

#######################################################################
## sous-programmes pour chaque écran ##################################
#######################################################################


## le document par defaut

sub document_de_garde {
my $actif = shift;
return unless $actif;

print "<H1>salut!</H1>\n";
print "bienvenue dans notre magasin d'habillement\&nbsp;!\n",
print "faites votre choix dans le menu ci-dessous.\n";

menu_boutique();
}

## document à partir duquel commander une chemise

sub chemise {
my $actif = shift;
my @tailles = qw(XL L M S);
my @couleurs = qw(Noire Blanche);

my ($taille, $couleur, $compte) =
(param("taille_chemise"), param("couleur_chemise"),
param("nom_chemises"));

##verification des donnees reçus
if ($compte) {
$couleur = $couleurs[0]
unless grep { $_ eq $couleur } @couleurs;
$taille = $tailles[0]
unless grep {$_ eq $taille } @tailles;
param("couleur_chemise" , $couleur);
param("taille_chemise" , $taille);
}

unless ( $actif ) {
print hidden("taille_chemise") if $taille;
print hidden("couleur_chemise") if $couleur;
print hidden("nombre_chemises") if $compte;
return;
}

print h1("chemises");
print p("quelle chemise! cette petite merveille est\n","livree avec
toutes les options.doublure de luxe,\n",
"finitions avec toutes les options. doublure de
luxe\n","finitions en
coton, et un col à en avoir les\n",
"Prix unitaire: 33.00 euros.");

print h2("options");
print p("nombre ?",textfield("nombre_chemises"));
print p("taille ?",popup_menu("taille_chemise",\@tailles ),
"couleur ?", popup_menu("couleur_chemise",\@couleurs ));

menu_boutique();

}


## document à partir duquel commander des chaussures

sub chaussures {
my $actif = shift;
my @tailles = qw(35 36 37 38 39 40 41 42 43 44 45 46 47 48);
my @couleurs = qw(Ivoire Noisette Ebene);

my ( $taille, $couleur, $compte) =
(param("taille_chaussure"), param("couleur_chaussures"),
param("nombre_chaussures"));

##verification des donnees reçus
if ( $compte ) {
$couleur = $couleurs[0]
unless grep { $_ eq $couleur } @couleurs;
$taille = $tailles[0]
unless grep { $_ eq $taille } @tailles;
param("couleur_chaussures",$couleur);
param("taille_chaussures", $taille);
}


unless ( $actif ) {
print hidden("taille_chaussures") if $taille;
print hidden("couleur_chaussures") if $couleur;
print hidden("nombre_chaussures") if $compte;
return;
}

print h1("chaussures");
print p("vous ne serez jamais aussi elegant que chausse de
ces\n", "souliers magnifiques\n",
"prix unitaires: 49.99 euros.");

print h2("options");
print p("nombre de paires?", textfield("nombre_chaussures"));
print p("pointure?", popup_menu("taille_chaussures",\@tailles));
print p("teinte?",popup_menu("couleur_chaussures",\@couleurs));

menu_boutique();

}

## document qui affiche la commande actuelle en attente de comfirmation

sub passage_a_la_caisse {
my $actif = shift;

return unless $actif;

print h1("confirmation de la commande");
print p("vous avez commande:");
print texte_commande();
print p("est-ce correct?\nn",
"choissisez «Carte» pour regler ces\n",
"objets, ou «chemises» ou\n",
"«chaussures» pour continuer vos courses.");
print p(vers_doc("Carte"),
vers_doc("Chemises"),
vers_doc("Chaussures"));

}

## document pour ollecter les informations relatives à la carte de credit

sub carte_de_credit {
my $actif = shift;
my @gadgets = qw(Nom Adresse1 Adresse2 Ville Code_postal Pats
Telephone
Carte Expire_en);

unless ( $actif ) {
print map { hidden($_) } @gadgets;
return;
}

print pre ( p ("Nom\&nbsp;: ",textfield("Nom")),
p ("Adresse\&nbsp;: ",textfield("Adresse1")),
p (" ",textfield("Adresse2")),
p ("Ville\&nbsp;: ",textfield("Ville")),
p ("Code Postal\&nbsp;: ",textfield("Code_postal")),
p ("Pays\&nbsp;: ",textfield("Pays")),
p ("Telephone\&nbsp;: ",textfield("Teléphone")),
p ("Carte numéro\&nbsp;: ",textfield("Carte")),
p ("Expire en\&nbsp;: ",textfield("Expire_en")));

print p ( "Selectionner «Commande» pour commander\n",
"ces objets. selectionner «Annulation»\n");

print p ( vers_doc("Commande"), vers_doc("Annulation"));
}

## document pour terminer une commande

sub commande {
my $actif = shift;

unless ( $actif) {
return;
}

## ici on verifie les valeurs donnees pour la carte de credit

print h1("Commandé\&nbsp;!");
print p("vous avez commandé ce qui suit:");
print texte_commande();

print p (defaults ("Retour au debut"));
}

## renvoie de l ' HTML pour la commande actuelle("vous avez ommande")

sub texte_commande {
my $html = '';

if ( param ("nombre_chemises")) {
$html .= p("vous avez commandé" , param("nombre_chemises"),
"chemises de taille", param("taille_chemise"),
" et de couleur " , param("couleur_chemise"),",");
}
if ( param ("nombre_chaussures")) {
$html .= p("vous avez comandé",param("nombre_chaussures"),
"paires de chaussures de pointures" ,
param("taille_chaussures"),
" et de teinte ", param ("couleur_chaussures"),".");
}
$html = p("Rien!") unless $html;
$html .= p("pour un prix total de ",calcule_prix());
return $html;
}

sub calcule_prix {
my $chemises = param("nombre_chemises") || 0 ;
my $chaussures = param("nombre_chaussures") || 0;
return sprintf("%.2f\&nbsp;euros", $chemises * 33 + $chaussures *
49.99);
}

sub vers_doc { submit (-NAME => ".Etat", -VALUE => shift) }


A friend ask me to do him a website of paintings.
I try to make this program work and will modify it for paintings.
 
T

Tad McClellan

john.swilting said:
He(It) does not walk(work) correctly can you m help to find the error
The error which appears it is Not of ecran for card
at /var/www/cgi-bin/vente.cgi line 24

help help help


Pleading makes it *less* likely that you will get help.

Have you seen the Posting Guidelines that are posted here frequently?

i am french


How is that relevant?

die "Pas d'écran pour $Ecran_actuel" unless $Etats{$Ecran_actuel};


This line cannot produce the error message that you claim.

We cannot help you if we do not get real information.



[ snip 230 lines of code that are not needed to illustrate the problem ]
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,153
Members
46,699
Latest member
AnneRosen

Latest Threads

Top