1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!c:/Perl/bin/perl
use strict;
use warnings;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
use DBI;
my $cgi = CGI->new;
print $cgi->header();
my %params = $cgi->Vars();
warningsToBrowser(1); # damit werden Warnungen an den Browser geschickt
##Suche oder Eintrag##
if ($params{suchanfrage}){
suche();
}
else{
eintragen();
}
#Start Subroutine Suche
sub suche {
my $nachname = $params{nachname};
my $abteilung = $params{abt};
my $dbh = DBI->connect("DBI:CSV:mitarbeiter=c:/apachefriends/xampp/htdocs/cgi-bin") or die "Fehler: $DBI::errstr\n";
my $statement = "SELECT * FROM mitarbeiter WHERE Nachname = ? AND Abteilung = ?"; # hier besser mit Platzhaltern arbeiten
my $sth = $dbh->prepare($statement) or die "Konnte SQL-Statement nicht bereitstellen: $DBI::errstr";
$sth->execute($nachname,$abteilung) or die "Ausfuehren nicht moeglich: $DBI::errstr"; # hier die Platzhalter füllen
#Treffer
if ($sth->rows != 0){
print $cgi->start_html(-title => 'Antwort');
print qq~<center><h1>Suchergebnis</h1><hr><table border=1><tr><td width="200"><b>Familienname:</b></td>
<td width="100"><b>Vorname:</b></td><td width="200"><b>Abteilung:</b></td><td width="100">
<b>Telefon:</b></td></tr>~;
while (my ($familienname,$vorname,$abt,$telefon) = $sth->fetchrow_array()) {
print qq§<tr>\n<td><b>$familienname</b></td>\n<td>$vorname</td>\n<td>$abt</td>\n<td>$telefon</td>\n</tr>\n§;
}
print qq§</table>\n<p><a href="formular1.html">Neue Suche</a></p>\n<hr>\n</center>§;
}
else { ##Keine Treffer
print $cgi->start_html(-title => 'Antwort');
print qq~<body><p>Leider brachte die Suche keine Ergebnisse!</p><hr><p>
<a href="http://localhost/formular1.html">Neue Suche!</a></p>~;
}
print $cgi->end_html();
$sth->finish();
$dbh->disconnect;
} ##Ende Subroutine Suche
sub eintragen{ #Start Subroutine Eintragen
my $dbh = DBI->connect("DBI:CSV:mitarbeiter=c:/apachefriends/xampp/cgi-bin") or die "Fehler: $DBI::errstr";
my $statement = "INSERT INTO mitarbeiter(Nachname,Vorname,Abteilung,Telefon) VALUES(?,?,?,?)";
my $sth = $dbh->prepare($statement) or die "Konnte SQL-Statement nicht bereitstellen: $DBI::errstr";
$sth->execute($params{nachname},$params{vorname},$params{abt},$params{telefon});
#Antwortseite
print $cgi->start_html(-title => 'Antwort');
print qq~<h4>Datenbankeintrag:</h4><hr><p><b>$nachname</b>,$vorname, $abt, $telefon</p><hr><p>
<a href="formular2.html">Neuer Eintrag!</a></p><hr></body>~;
$sth->finish();
$dbh->disconnect;
}