problemes pour recuperer tout les parmetres depuisun cgi

Le
john.swilting
j ai un cgi qui recoit c premiers parametres depuis une galerie photo
le cgi recoit bien les parametres de la galerrie photos à savoir commander
et le numero de l 'image
mais le formulaire contient
plusieurs champs nom adresse ville code postal tel et e mail
il reçoit bien les parametres de la gallerie mais quand je remplis les
champsdu formulaires des parametres se perdent
et cela et tres obscurs pour moi
je ne recupere que le champ adresse

voici mon code
j essaye de coller au plus pres de perldoc -U CGI
je suis presque au bout de la realisation de mon site
le guestbook marche
le formulaire de contact marche j y ai mis la possibiliter d envoyer une
image
aidez moi s il vous plait

serge


#!/usr/bin/perl -w
use diagnostics;
use strict;
use CGI qw(:standard escapeHTML);
use CGI::Carp qw(fatalsToBrowser);

my %params;
my $cgi;
my $key;
my $image;
my $action;
my $length_tableau;
my @key;
my @action;
$cgi = new CGI;
%params = $cgi->Vars;
for $key(sort keys %params){
## $action = $key;
## $image = $params{$key};
push(@key , $key);
push(@action , $params{$key});
}

print header,
start_html('Commande'),
h1('Bon de Commande'),
start_form,
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")),
p(""),
p("vous
desirer",tt(escapeHTML($key[0])),"l'image",tt(escapeHTML($action[0]))),
p("debug",tt(escapeHTML(@key)),tt(escapeHTML(@action)))),
submit,
end_form,
end_html;
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
john.swilting
Le #141963
john.swilting wrote:
j ai reecris mon cgi en colant au plus pres du cookbook

quand pensez vous

mon code:
#!/usr/bin/perl -w
use diagnostics;
use strict;
use CGI qw(:standard 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');
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();
}
sub saisie_commande {
my $actif = shift;
my @gadgets = qw(Nom Adresse1 Adresse2 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 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 ("e-mail&nbsp;: ",textfield("Mail")));

print p ( "Selectionner validation_commande pour commandern",
"la peintures. autrement selectionner Annulationn");

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

sub validation_commande {
my $actif = shift;
unless ( $actif) {
return;
}
my $numero_commande = time;
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(defaults("Retour au debut"));
}
sub vers_doc { submit (-NAME => ".Etat", -VALUE => shift) }

j ai un cgi qui recoit c premiers parametres depuis une galerie photo
le cgi recoit bien les parametres de la galerrie photos à savoir commander
et le numero de l 'image
mais le formulaire contient
plusieurs champs nom adresse ville code postal tel et e mail
il reçoit bien les parametres de la gallerie mais quand je remplis les
champsdu formulaires des parametres se perdent
et cela et tres obscurs pour moi
je ne recupere que le champ adresse

voici mon code
j essaye de coller au plus pres de perldoc -U CGI
je suis presque au bout de la realisation de mon site
le guestbook marche
le formulaire de contact marche j y ai mis la possibiliter d envoyer une
image
aidez moi s il vous plait

serge


#!/usr/bin/perl -w
use diagnostics;
use strict;
use CGI qw(:standard escapeHTML);
use CGI::Carp qw(fatalsToBrowser);

my %params;
my $cgi;
my $key;
my $image;
my $action;
my $length_tableau;
my @key;
my @action;
$cgi = new CGI;
%params = $cgi->Vars;
for $key(sort keys %params){
## $action = $key;
## $image = $params{$key};
push(@key , $key);
push(@action , $params{$key});
}

print header,
start_html('Commande'),
h1('Bon de Commande'),
start_form,
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")),
p(""),
p("vous
desirer",tt(escapeHTML($key[0])),"l'image",tt(escapeHTML($action[0]))),
p("debug",tt(escapeHTML(@key)),tt(escapeHTML(@action)))),
submit,
end_form,
end_html;


john.swilting
Le #141847
john.swilting wrote:
j ai apporter quelques modifications à mon cgi
mais comment faire pour circuler les parametres entre les pages
quand ya param qui est utilisable c tres bien

mais pour le numero de l image
et le numero de commande
je ne sais pas comment faire
mon code:
#!/usr/bin/perl -w
use diagnostics;
use strict;
use CGI qw(:standard 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&nbsp;: ",textfield("Nom")),
p ("Adresse&nbsp;: ",textfield("Adresse")),
p ("Ville&nbsp;: ",textfield("Ville")),
p ("Code Postal&nbsp;: ",textfield("Code_postal")),
p ("Pays&nbsp;: ",textfield("Pays")),
p ("Telephone&nbsp;: ",textfield("Teléphone")),
p ("e-mail&nbsp;: ",textfield("Mail")));

print p ( "Selectionner validation_commande pour commandern",
"la peintures. autrement selectionner Annulationn");

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) }
Publicité
Poster une réponse
Anonyme