J
john.swilting
my cgi functions on several windows.I' would like to be able to recover the
parameter $image which comes from the form of the gallery photographs of
the first window towards the second window and the third window.I know
there is the instruction param, but I do not manage to use it in my cgi
my code functions well and it compiles without warnings
#!/usr/bin/perl -w
use diagnostics;
use strict;
use CGI qwstandard escapeHTML);
use CGI::Carp qw(fatalsToBrowser);
my $cgi;
my $key;
my %etats;
my $ecran_actuel;
$cgi = new CGI;
%etats = (
'defaut' =>\&commander,
'saisie_commande' =>\&saisie_commande,
'validation_commande' =>\&validation_commande,
);
$ecran_actuel = param(".Etat") || "defaut";
die "Pas d'ecran 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();
########################################################################
## fonctions d en tete , de pied de page ,de menu ################
########################################################################
sub en_tete_standard {
print header(),
start_html(-Title => "commande" , -BGCOLOR=>"White");
print start_form();
}
sub pied_de_page_standard{ print end_form(),end_html() }
sub menu_boutique{
print p(defaults("vider mon cadie"),
vers_doc("saisie_commande"));
}
sub commander {
my($actif) = @_;
return unless $actif;
my $image = param ('image');
if ( $image == '') {
die "error";
}
print "<H1>salut !</H1>\n";
print p("bienvenue dnas notre magasin de peintures !");
print p("vous avez selectionner la
peintures ",tt(escapeHTML($image)),"\n");
menu_boutique();
return $image;
}
sub saisie_commande {
my $actif = shift;
## my($image) = main::commander;
my @gadgets = qw(Nom Adresse Ville Code_postal Pays Telephone Mail);
unless ( $actif ) {
print map { hidden($_) } @gadgets;
return;
}
print p("Tous les champs sont obligatoires sinons votre commande ne sera
pas valable");
print p("vous pouvez remplir au choix votre numero de telephone ou votre
mail pour le suivie de la commande");
## print p("image ",tt(escapeHTML($image)));
print pre ( p ("Nom\ : ",textfield("Nom")),
p ("Adresse\ : ",textfield("Adresse")),
p ("Ville\ : ",textfield("Ville")),
p ("Code Postal\ : ",textfield("Code_postal")),
p ("Pays\ : ",textfield("Pays")),
p ("Telephone\ : ",textfield("Teléphone")),
p ("e-mail\ : ",textfield("Mail")));
print p ( "Selectionner validation_commande pour commander\n",
"la peintures. autrement selectionner Annulation\n");
print p ( vers_doc("validation_commande"), vers_doc("Annulation"));
}
sub validation_commande {
my $actif = shift;
unless ( $actif) {
return;
}
my $numero_commande = time;
my $nom = param ('Nom');
my $adresse = param ('Adresse');
my $ville = param ('Ville');
my $code_postal = param ('Code_postal');
my $pays = param ('Pays');
my $telephone = param ('Teléphone');
my $mail = param ('Mail');
print h1("Commander !");
print p("vous aller recevoir un e-mail avec un numero de commande");
print p("vous serez prevenue quand le paquet sera posté");
print p("dans toutes correspondance indiquer votre numero de
commande",tt(escapeHTML($numero_commande)));
print p("debug ",tt(escapeHTML($nom)));
print p("debug ",tt(escapeHTML($adresse)));
print p("debug ",tt(escapeHTML($ville)));
print p("debug ",tt(escapeHTML($pays)));
print p("debug ",tt(escapeHTML($telephone)));
print p("debug ",tt(escapeHTML($mail)));
print p(defaults("Retour au debut"));
}
sub vers_doc { submit (-NAME => ".Etat", -VALUE => shift) }
parameter $image which comes from the form of the gallery photographs of
the first window towards the second window and the third window.I know
there is the instruction param, but I do not manage to use it in my cgi
my code functions well and it compiles without warnings
#!/usr/bin/perl -w
use diagnostics;
use strict;
use CGI qwstandard escapeHTML);
use CGI::Carp qw(fatalsToBrowser);
my $cgi;
my $key;
my %etats;
my $ecran_actuel;
$cgi = new CGI;
%etats = (
'defaut' =>\&commander,
'saisie_commande' =>\&saisie_commande,
'validation_commande' =>\&validation_commande,
);
$ecran_actuel = param(".Etat") || "defaut";
die "Pas d'ecran 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();
########################################################################
## fonctions d en tete , de pied de page ,de menu ################
########################################################################
sub en_tete_standard {
print header(),
start_html(-Title => "commande" , -BGCOLOR=>"White");
print start_form();
}
sub pied_de_page_standard{ print end_form(),end_html() }
sub menu_boutique{
print p(defaults("vider mon cadie"),
vers_doc("saisie_commande"));
}
sub commander {
my($actif) = @_;
return unless $actif;
my $image = param ('image');
if ( $image == '') {
die "error";
}
print "<H1>salut !</H1>\n";
print p("bienvenue dnas notre magasin de peintures !");
print p("vous avez selectionner la
peintures ",tt(escapeHTML($image)),"\n");
menu_boutique();
return $image;
}
sub saisie_commande {
my $actif = shift;
## my($image) = main::commander;
my @gadgets = qw(Nom Adresse Ville Code_postal Pays Telephone Mail);
unless ( $actif ) {
print map { hidden($_) } @gadgets;
return;
}
print p("Tous les champs sont obligatoires sinons votre commande ne sera
pas valable");
print p("vous pouvez remplir au choix votre numero de telephone ou votre
mail pour le suivie de la commande");
## print p("image ",tt(escapeHTML($image)));
print pre ( p ("Nom\ : ",textfield("Nom")),
p ("Adresse\ : ",textfield("Adresse")),
p ("Ville\ : ",textfield("Ville")),
p ("Code Postal\ : ",textfield("Code_postal")),
p ("Pays\ : ",textfield("Pays")),
p ("Telephone\ : ",textfield("Teléphone")),
p ("e-mail\ : ",textfield("Mail")));
print p ( "Selectionner validation_commande pour commander\n",
"la peintures. autrement selectionner Annulation\n");
print p ( vers_doc("validation_commande"), vers_doc("Annulation"));
}
sub validation_commande {
my $actif = shift;
unless ( $actif) {
return;
}
my $numero_commande = time;
my $nom = param ('Nom');
my $adresse = param ('Adresse');
my $ville = param ('Ville');
my $code_postal = param ('Code_postal');
my $pays = param ('Pays');
my $telephone = param ('Teléphone');
my $mail = param ('Mail');
print h1("Commander !");
print p("vous aller recevoir un e-mail avec un numero de commande");
print p("vous serez prevenue quand le paquet sera posté");
print p("dans toutes correspondance indiquer votre numero de
commande",tt(escapeHTML($numero_commande)));
print p("debug ",tt(escapeHTML($nom)));
print p("debug ",tt(escapeHTML($adresse)));
print p("debug ",tt(escapeHTML($ville)));
print p("debug ",tt(escapeHTML($pays)));
print p("debug ",tt(escapeHTML($telephone)));
print p("debug ",tt(escapeHTML($mail)));
print p(defaults("Retour au debut"));
}
sub vers_doc { submit (-NAME => ".Etat", -VALUE => shift) }