175 lines
4.7 KiB
Perl
Executable File
175 lines
4.7 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
use DBI;
|
|
use CGI;
|
|
|
|
require "cgi-lib.pl";
|
|
|
|
&ReadParse(*query);
|
|
|
|
$num_client = $query{'numclient'};
|
|
$email = $query{'email'};
|
|
$societe = $query{'societe'};
|
|
$nom = $query{'nom_client'};
|
|
$prenom = $query{'prenom_client'};
|
|
$adr1 = $query{'adr1'};
|
|
$adr2 = $query{'adr2'};
|
|
$cpt = $query{'code_postal'};
|
|
$ville = $query{'ville'};
|
|
$tel_client = $query{'tel_client'};
|
|
$fax_client = $query{'fax_client'};
|
|
$civilite = $query{'civilite'};
|
|
|
|
if ($num_client == 0){
|
|
#se connecter a la base
|
|
$dbh = DBI->connect("dbi:Pg:dbname=s_marchand", postgres, ) or die $DBI::errstr;
|
|
|
|
$quel_client = $dbh->prepare( "SELECT num_client from base_clients where email='$email' ");
|
|
$quel_client->execute;
|
|
|
|
$no_client = $quel_client->fetchrow;
|
|
|
|
$quel_client->finish;
|
|
|
|
$dbh->disconnect;
|
|
}else{
|
|
$no_client = $num_client;
|
|
}
|
|
|
|
#construire l'identifiant du client en ligne et l'inserer dans la base
|
|
$time = `/bin/date|tr " " "/"|cut -c1-10`;
|
|
$ID_client_el = "$no_client" . "-" . "$time";
|
|
|
|
$html = new CGI;
|
|
|
|
print $html->header;
|
|
|
|
print "<HTML>\n";
|
|
print "<HEAD>\n";
|
|
print "<TITLE>Catalogue produits</TITLE>\n";
|
|
print "</HEAD>\n";
|
|
print "<BODY BGCOLOR=\"\#FFFFFF\">\n";
|
|
print "<spacer TYPE=\"block\" HEIGHT=12>\n";
|
|
print "<CENTER><H1>Nos PRODUITS</H1></CENTER>\n";
|
|
|
|
print "<HR SIZE=7 NO SHADE>\n";
|
|
print "<P>\n";
|
|
|
|
#se connecter a la base
|
|
$dbh = DBI->connect("dbi:Pg:dbname=s_marchand", postgres, ) or die $DBI::errstr;
|
|
# construire la page catalogue produit
|
|
$cursor = $dbh->prepare( "SELECT * FROM produits" );
|
|
|
|
$cursor->execute;
|
|
|
|
while ( @row = $cursor->fetchrow ) {
|
|
($code_famille,$code_produit,$denomination,$prix_ht,$descriptif,$chemin_Img) = @row;
|
|
construire_page_produits();
|
|
}
|
|
|
|
$cursor->finish;
|
|
|
|
&identifier_client_el();
|
|
|
|
if ($nom ne ""){
|
|
&ins_client_bdd();
|
|
}
|
|
|
|
$dbh->disconnect;
|
|
|
|
|
|
print "</BODY></HTML>\n";
|
|
|
|
# extrait les produits de la base de donnees pour construire une page html de presentation des produits
|
|
sub construire_page_produits {
|
|
print "<FORM METHOD=\"post\" ACTION=\"http://o2000/cgi/bdd_com.pl\">\n";
|
|
|
|
print "<TABLE BORDER=0>\n";
|
|
|
|
print "<TR ALIGN=\"left\" VALIGN=\"center\">\n";
|
|
print "<TD ROWSPAN=4><IMG HEIGHT=200 WIDTH=200 SRC=\"$chemin_Img\" BORDER=1></TD>\n";
|
|
print "<TD ALIGN=\"right\"> </TD>\n";
|
|
print "<TD ALIGN=\"right\"><B>$denomination</B></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD ALIGN=\"right\"> </TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "</TR>\n";
|
|
|
|
print "<TR>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD ALIGN=\"right\"><B>R\éf\érence : </B></TD>\n";
|
|
print "<TD ALIGN=\"right\">$code_famille $code_produit</TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD ALIGN=\"right\"><B>Prix unitaire H.T. : </B></TD>\n";
|
|
print "<TD ALIGN=\"right\">$prix_ht</TD>\n";
|
|
print "<TD><B>Euros</B></TD>\n";
|
|
print "</TR>\n";
|
|
|
|
print "<TR></TR>\n";
|
|
|
|
print "<TR>\n";
|
|
print "<TD> </TD>\n";
|
|
print "<TD COLSPAN=7>$descriptif</TD>\n";
|
|
print "</TR>\n";
|
|
|
|
print "<TR>\n";
|
|
print "<TD> </TD>\n";
|
|
print "<TD COLSPAN=7 ALIGN=\"right\"><INPUT TYPE=\"submit\" VALUE=\"Sélectionner\" NAME='go'></TD>\n";
|
|
print "</TR>\n";
|
|
|
|
print "</TABLE>\n";
|
|
|
|
print "<BR><HR><BR>\n";
|
|
|
|
print "<INPUT TYPE=\"hidden\" NAME=\"code_famille\" VALUE=$code_famille>\n";
|
|
print "<INPUT TYPE=\"hidden\" NAME=\"code_produit\" VALUE=$code_produit>\n";
|
|
print "<INPUT TYPE=\"hidden\" NAME=\"designation\" VALUE=$denomination>\n";
|
|
print "<INPUT TYPE=\"hidden\" NAME=\"prix_ht\" VALUE=$prix_ht>\n";
|
|
print "<INPUT TYPE=\"hidden\" NAME=\"ID_client_el\" VALUE=$ID_client_el>\n";
|
|
|
|
print "<INPUT TYPE=\"hidden\" NAME='page' VALUE=$current_page OVERRIDE=1>\n";
|
|
|
|
print "</FORM>\n";
|
|
}
|
|
|
|
sub identifier_client_el {
|
|
|
|
# creer un identifiant au client en ligne pour lui creer un panier
|
|
$sqlcom1 = $dbh->prepare("SELECT * FROM client_en_ligne WHERE id_client_el LIKE '$ID_client_el'");
|
|
$sqlcom1->execute;
|
|
|
|
@idcli = $sqlcom1->fetchrow;
|
|
|
|
if ($idcli[0] eq ""){
|
|
$sql_com2 = $dbh->prepare("INSERT INTO client_en_ligne VALUES ('$ID_client_el',$no_client)");
|
|
$sql_com2->execute;
|
|
$sql_com2->finish;
|
|
}
|
|
|
|
$sqlcom1->finish;
|
|
|
|
}
|
|
|
|
sub ins_client_bdd {
|
|
# completer les champs de cordonnes du client dans la base
|
|
$ins = $dbh->prepare( "UPDATE base_clients " .
|
|
"SET societe = '$societe', " .
|
|
"civilite = '$civilite', " .
|
|
"nom = '$nom', " .
|
|
"prenom = '$prenom', " .
|
|
"adr1 = '$adr1', " .
|
|
"adr2 = '$adr2', ".
|
|
"cpt = '$cpt', " .
|
|
"ville = '$ville', " .
|
|
"tel = '$tel_client', ".
|
|
"fax = '$fax_client' " .
|
|
"WHERE email='$email' " );
|
|
|
|
$ins->execute;
|
|
|
|
$ins->finish;
|
|
print "$societe - $civilite - $nom - $prenom - $adr1 - $adr2 - $cpt - $ville - $tel_client - $fax_client -\n";
|
|
}
|