Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Perl > Perl Misc > help me problems cgi

Reply
Thread Tools

help me problems cgi

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

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


That walks(works) for shoes not for shirts
 
Reply With Quote
 
 
 
 
john.swilting
Guest
Posts: n/a
 
      01-14-2007
john.swilting wrote:

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


its ok

problems syntax
perl is permissive

sorry for flood
my name is serge
i am french
 
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
(CGI-Target)Could not connect to CGI-Proxy John Smith Java 0 05-15-2006 09:21 PM
I need some help with browser output in ruby cgi - cgi.rb Professor Chen Ruby 0 02-06-2006 07:08 AM
Python CGI - Accepting Input, Invoking Another Process, Ending CGI LarsenMTL Python 4 11-04-2004 05:59 PM
Calling cgi from cgi thru 'system' function. Different behaviour on browser v/s cmd line Shailan Perl 2 12-15-2003 04:26 PM
Re: CGI Perl "use CGI" statement fail Jürgen Exner Perl 0 07-31-2003 02:00 PM



Advertisments
 



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