#!/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 "\n"; print "
\n"; print "Vous pouvez procéder à la consultation de nos produits.\n"; # Formulaire d'affichage du descriptif des articles print "
\n"; print "