Files

189 lines
5.6 KiB
Perl
Executable File

#!/usr/bin/perl
#script cgi d'identification du client en ligne, avant de passer sa commande
use DBI;
use CGI;
require "cgi-lib.pl";
#lire l'identifiant du client
&ReadParse(*query);
$email = $query{'email'};
$entre1 = $query{'entre1'};
$entre2 = $query{'entre2'};
my $html = new CGI;
# chemin de la page d'une nieme saisie de l'identifiant du client
$URLBIS = "http://O2000/cgi/re_identifier.pl";
# chemin de la page catalogue
$URL_PRODUITS = "http://O2000/cgi/bdd_prod.pl";
# chemin de la page qui s'affiche si le mot de passe entre n'est pas le bon
$URL_FAUX_MOTDEPASSE = "http://O2000/cgi/faux_motdepasse.pl";
#print $html->header;
if ($entre1 eq $entre2){
# se connecter a la base
$dbh = DBI->connect("dbi:Pg:dbname=s_marchand", postgres, ) or die $DBI::errstr;
# rechercher le client dans la base pour savoir s'il est deja inscrit
$cursor = $dbh->prepare("SELECT * FROM base_clients WHERE email='$email' " );
$cursor->execute;
@reconnu = $cursor->fetchrow;
if (($reconnu[1] ne "") and ($reconnu[2] eq $entre2)){
client_reconnu();
}elsif (($reconnu[1] ne "") and ($reconnu[2] ne $entre2)){
print "Location: $URL_FAUX_MOTDEPASSE\n\n";
}else{
enregistrer_client();
}
$cursor->finish;
# se deconnecter de la base
$dbh->disconnect;
}else{
print "Location: $URLBIS\n\n";
}
sub enregistrer_client {
$html = new CGI;
# construire le numero du nouveau client
$count = $dbh->prepare("SELECT count(*) from base_clients");
$count->execute;
$nbclients = $count->fetchrow;
$nvclient = $nbclients + 1;
$count->finish;
# Inserer l'identifiant, l'adresse e-mail et le mot de passe du nouveau client dans la base
$enr = $dbh->prepare("INSERT INTO base_clients VALUES ('$nvclient','$email','$entre2')");
$enr->execute;
$enr->finish;
print $html->header;
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>formulaire d\'enregistrement des coordonn&eacute;es client</TITLE>\n";
print "</HEAD>\n";
print "<BODY BGCOLOR=\"\#ffffff\">\n";
print "<CENTER>\n";
print "<SPACER TYPE=\"block\" WIDTH=5 HEIGHT=15>\n";
# Formulaire d'affichage du descriptif des articles
print "<FORM METHOD=\"post\" ACTION=\"http://o2000/cgi/bdd_prod.pl\">\n";
print "<TABLE BORDER=0 CELLSPACING=3>\n";
print "<TH colspan=5><FONT SIZE=7>Vos coordonn&eacute;es</FONT></TH>\n";
print "<TR >\n";
print "<TD COLSPAN=5><SPACER TYPE=\"block\" WIDTH=5 HEIGHT=15></TD>\n";
print "</TR>\n";
print "<TR >\n";
print "<TD>Soci&eacute;t&eacute; : </TD>\n";
print "<TD COLSPAN=4><INPUT TYPE=text SIZE=65 MAXLENGHT=90 NAME=\"societe\"></TD>\n";
print "</TR>\n";
print "<TR >\n";
print "<TD>Civilit&eacute; : </TD>\n";
print "<TD COLSPAN=4 ALIGN=left><INPUT TYPE=radio NAME=\"civilite\" VALUE=\"Mme\">Mme\n";
print "<SPACER TYPE=\"block\" WIDTH=9>\n";
print "<INPUT TYPE=radio NAME=\"civilite\" VALUE=\"Mlle\">Mlle\n";
print "<SPACER TYPE=\"block\" WIDTH=9>\n";
print "<INPUT TYPE=radio NAME=\"civilite\" VALUE=\"M.\">M.</TD>\n";
print "</TR>\n";
print "<TR >\n";
print "<TD>Nom : </TD>\n";
print "<TD><INPUT TYPE=text SIZE=25 MAXLENGHT=50 NAME=\"nom_client\"></TD>\n";
print "<TD></TD>\n";
print "<TD ALIGN=\"right\">Pr&eacute;nom : </TD>\n";
print "<TD><INPUT TYPE=text SIZE=30 MAXLENGHT=50 NAME=\"prenom_client\"></TD>\n";
print "</TR>\n";
print "<TR >\n";
print "<TD>Adresse : </TD>\n";
print "<TD COLSPAN=4><INPUT TYPE=text SIZE=65 MAXLENGHT=150 NAME=\"adr1\"></TD>\n";
print "</TR>\n";
print "<TR >\n";
print "<TD></TD>\n";
print "<TD COLSPAN=4><INPUT TYPE=text SIZE=65 MAXLENGHT=150 NAME=\"adr2\"></TD>\n";
print "</TR>\n";
print "<TR >\n";
print "<TD>Code postal : </TD>\n";
print "<TD><INPUT TYPE=text SIZE=12 MAXLENGHT=10 NAME=\"code_postal\"></TD>\n";
print "<TD></TD>\n";
print "<TD ALIGN=\"right\">Ville : </TD>\n";
print "<TD><INPUT TYPE=text SIZE=30 MAXLENGHT=50 NAME=\"ville\"></TD>\n";
print "</TR>\n";
print "<TR >\n";
print "<TD>tel : </TD>\n";
print "<TD><INPUT TYPE=text SIZE=20 MAXLENGHT=20 NAME=\"tel_client\"></TD>\n";
print "<TD></TD>\n";
print "<TD ALIGN=\"right\">Fax : </TD>\n";
print "<TD><INPUT TYPE=text SIZE=20 MAXLENGHT=20 NAME=\"fax_client\"></TD>\n";
print "</TR>\n";
print "<TR >\n";
print "<TD>E-mail : </TD>\n";
print "<TD COLSPAN=4 BGCOLOR=\"#CC9999\" HEIGHT=40>$email</TD>\n";
print "</TR>\n";
print "<TR >\n";
print "<TD COLSPAN=5 ALIGN=\"right\"><INPUT TYPE=\"submit\" VALUE=\"OK\"></TD>\n";
# transmettre l'identifiants du client par un champ cache
print "<INPUT TYPE=\"hidden\" NAME=\"numclient\" VALUE=$nvclient>\n";
print "<INPUT TYPE=\"hidden\" NAME=\"email\" VALUE=$email>\n";
print "</TR>\n";
print "</TABLE>\n";
print "</FORM>\n";
print "</CENTER>\n";
print "</BODY>\n";
print "</HTML>\n";
}
sub client_reconnu {
$html = new CGI;
print $html->header;
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>Reconnaissance d'un ancien client</TITLE>\n";
print "</HEAD>\n";
print "<BODY BGCOLOR=\"\#ffffff\">\n";
print "<CENTER>\n";
print "<SPACER TYPE=\"block\" WIDTH=5 HEIGHT=30>\n";
print "<FONT SIZE=4>La soci&eacute;t&eacute; AIRTRIA est heureuse de vous accueillir une nouvelle fois.</font><P> Vous pouvez proc&eacute;der &agrave; la consultation de nos produits.\n";
# Formulaire d'affichage du descriptif des articles
print "<FORM METHOD=\"post\" ACTION=\"http://o2000/cgi/bdd_prod.pl\">\n";
print "<TABLE BORDER=0 CELLSPACING=3>\n";
print "<TR>\n";
print "<TD COLSPAN=5 ALIGN=\"right\"><INPUT TYPE=\"submit\" VALUE=\"VOIR PRODUITS\"></TD>\n";
# transmettre l'identifiants du client par un champ cache
print "<INPUT TYPE=\"hidden\" NAME=\"email\" VALUE=$email>\n";
print "</TR>\n";
print "</TABLE>\n";
print "</FORM>\n";
print "</CENTER>\n";
print "</BODY>\n";
print "</HTML>\n";
}