Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Perl > Perl Misc > problems cgi ex cook book perl

Reply
Thread Tools

problems cgi ex cook book perl

 
 
john.swilting
Guest
Posts: n/a
 
      01-14-2007
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 4;
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",\@coul eurs));

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) }

 
Reply With Quote
 
 
 
 
RedGrittyBrick
Guest
Posts: n/a
 
      01-14-2007
john.swilting wrote:
> 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>
 
Reply With Quote
 
 
 
 
john.swilting
Guest
Posts: n/a
 
      01-14-2007
RedGrittyBrick wrote:

> john.swilting wrote:
>> 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>


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 4;
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",\@coul eurs));

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) }


 
Reply With Quote
 
john.swilting
Guest
Posts: n/a
 
      01-14-2007
john.swilting wrote:

> RedGrittyBrick wrote:
>
>> john.swilting wrote:
>>> 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>

>
> 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 4;
> 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",\@coul eurs));
>
> 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.
 
Reply With Quote
 
Mumia W. (NOSPAM)
Guest
Posts: n/a
 
      01-14-2007
On 01/14/2007 06:54 AM, john.swilting wrote:
> 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
> [...]


http://lists.cpan.org/showlist.cgi?name=perl-fr


--
Windows Vista and your freedom in conflict:
http://techdirt.com/articles/20061019/102225.shtml
 
Reply With Quote
 
Tad McClellan
Guest
Posts: n/a
 
      01-14-2007
john.swilting <(E-Mail Removed)> wrote:

> 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 ]

--
Tad McClellan SGML consulting
http://www.velocityreviews.com/forums/(E-Mail Removed) Perl programming
Fort Worth, Texas
 
Reply With Quote
 
Tad McClellan
Guest
Posts: n/a
 
      01-14-2007
john.swilting <(E-Mail Removed)> wrote:
> RedGrittyBrick wrote:
>> john.swilting wrote:



>>> die "Pas d'Ă©cran pour $Ecran_actuel" unless $Etats{$Ecran_actuel};


>> 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.



> I have correct the problemes of syntax



You did not have a problem of syntax.


> die "Pas d'Ă©cran pour $Ecran_actuel" unless $Etats{$Ecran_actuel};



You did not make the suggested change either.


--
Tad McClellan SGML consulting
(E-Mail Removed) Perl programming
Fort Worth, Texas
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
what's wrong calling a Perl/CGI script in Perl/CGI script under Tomcat server? kath Perl Misc 4 04-09-2007 09:21 PM
Now Hiring part time Cook or Hostess Kentucky Fried Chicken sympatico Computer Support 3 10-09-2005 02:16 AM
Will Dockery Lampoons [by Mike Cook] Will Dockery Digital Photography 1 06-08-2005 03:45 AM
Delia's How to Cook John Farrer DVD Video 0 03-07-2005 01:51 PM
Stuff the purple heart programmers cook up Last Timer Java 10 01-02-2005 11:58 PM



Advertisments