#!/bin/perl # Le bloc BEGIN suivant (optionnel) devra etre insere dans tout CGI... # Il vaut mieux ne pas le modifier BEGIN { # Le bloc BEGIN est optionel use CGI_Lite; # Module CGI_Lite... $cgi=new CGI_Lite; # On cree un objet de type cgi %in = $cgi->parse_form_data;# On lit les donnees venues du formulaire print "Content-type: text/html\n\n"; # Indispensable: Header close STDERR; open(STDERR, "|uniq"); # Redirection du standard erreur use DBI; # Module base de donnees } # Les champs du formulaire sont maintenant dans le tableau associatif %in # reference DBI : http://www.med.univ-rennes1.fr/~poulique/cours/perl/dbi.html # source : /usr/local/lib/perl5/site_perl/DBI.pm # $dbh = DBI->connect("dbi:Oracle:cours", $in{'nom_'}, $in{'mdp_'}) || die "Pb connection: $DBI::errstr"; print "

$in{'titre'}

"; # Titre du document $req = $in{'req_'}; $req =~ s/\&([a-z\_]+)/$in{$1}/gi; # Instanciation des parametres print "\n"; # Affichage de la requete en commentaire if ($req !~ /select/i) { # Requete de type insert, delete, update -> on l'execute $nblignes = $dbh->do ($req) || die "Pb do: $DBI::errstr"; if ($nblignes eq '0E0') { print "Pb : aucune lignes mises a jour\n"; } else { print "OK: requete executee : nb lignes mises a jour: $nblignes\n"; } } else {# requete de type SELECT print ""; # Debut du tableau HTML $sel = $dbh->prepare($req) || die "Pb selection: $DBI::errstr"; $sel->execute || die "Pb selection: $DBI::errstr"; # On affiche les noms des colonnes, tableau @{$sel->{NAME}} print "
", join('', @{$sel->{NAME}}),"\n"; # Maintenant, pour chaque ligne, on affiche les valeurs en tableau HTML while ((@val) = $sel->fetchrow_array) { print "
", join('', @val),"\n" } print "
"; # fin du tableau HTML }