#!/usr/bin/perl -w
#mitarbeiterliste.pl Ausgabe der CGI-Umgebungsvariablen
#Mitarbeiterliste -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
HTML-Header ausgeben
print "content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Test</title>";
print '<link rel="stylesheet" href="/css/css.css">',"\n";
print "</head><body>\n";
Variablen-Initialisierung
my (@input,$in,$total);
#my ($i,@cust, @arr, @erg, @matching);
my $request_method = $ENV{'REQUEST_METHOD'};
my @werte;
my %parameter;
my @paar;
my $aufruf;
my @spalten;
my @suchergebnis;
if ($request_method eq "GET") {
$aufruf=$ENV{'QUERY_STRING'};
}
elsif ( $request_method eq "POST"){
read (STDIN, $aufruf, $ENV{'CONTENT_LENGTH'});
print "Aufruf $aufruf<br>";
}
@werte = split (/&/, $aufruf);
foreach (@werte) {
@paar=split (/=/, $_);
$parameter{$paar[0]}=$paar[1];
}
#@werte=keys(%parameter);
#print "Parameter ",keys(%parameter),"<br>";
my $pfad="/srv/www/cgi-bin/daten/";
my $qdatei="$pfad$parameter{'datei'}";
open (FILE,"<$qdatei")||
"die Datei $parameter{'datei'} konnte nicht geöffnet werden";
# ganze Datei in @file einlesen
my @file = <FILE>;
my $zeile=$file[0];
@spalten=split(/;/,$zeile);
foreach (@spalten) {
$parameter{$_}="";
}
shift (@file);
# Array @file sortieren
my @sorted = sort @file;
#foreach $_ (@sorted) {
# chomp;
# push @arr, [ split(/;/,$_)];
#}
mode=1 Ausgabe der Liste
mode=2 Ausgabe der Suchmaske
mode=3 Aufruf des Skriptes mit den Suchdaten zur Ausgabe der Suchergebnisse
mode=4 Ausgabe der Einfügemaske
mode=5 Ausführen der Eingabe in die Einfügemaske in die Liste
mode=6 Editierenmaske
mode=7 Einfügen des Editierten Eintrags
#if ($parameter{"mode"} eq "3")
#{
print "<table border=1 cellpadding='2' cellspacing='2'>";
#Tabellenkopf ausgeben
#print "<form action='/cgi-bin/mitarbeiterliste.pl?mode=2&datei=mitarbeiterliste.txt' method='get'>";
# print "<tr><td colspan='9'><h2>Suchergebnisse</h2></td></tr>";
# print "<tr>";
# foreach (@spalten) {
# print "<th>$_</th>";}
# print "</tr>";
Tabellenzeilen ausgeben
# foreach (@arr) {
# Schleifeniterator ist $_
# Dereferenzieren der Arrayelemente mit $_->[Index]
# Aktive Tabellenausgabe!!!!
# print qq(<tr><td>$_->[0]</td><td>$_->[1]</td> <td>$_->[2]#</td><td>$_->[3]</td><td>$_->[4]</td><td>$_->[5]</td><td>$_->[6]#</td><td>$_->[7]</td><td>$_->[8]</td></tr>);
# }
# print "</table>";
#}
if ($parameter{"mode"} eq "1")
{
print "<table border=1 cellpadding='2' cellspacing='2'>";
#Tabellenkopf ausgeben
print "<form action='/cgi-bin/mitarbeiterliste.pl?mode=2&datei=mitarbeiterliste.txt' method='get'>";
print "<tr><td colspan='8'><h2>Gesamte Liste</h2></td><td colspan='1'><input type='Submit' name='search' value='Eintrag suchen'</td></tr>";
print "<tr>";
foreach (@spalten) {
print "<th>$_</th>";}
print "</tr>";
Tabellenzeilen ausgeben
# foreach (@arr) {
# Schleifeniterator ist $_
# Dereferenzieren der Arrayelemente mit $_->[Index]
# Aktive Tabellenausgabe!!!!
print qq(<tr><td>$_->[0]</td><td>$_->[1]</td> <td>$_->[2]</td><td>$_->[3]</td><td>$_->[4]</td><td>$_->[5]</td><td>$_->[6]</td><td>$_->[7]</td><td>$_->[8]</td></tr>);
}
print "</table>";
if ($parameter{"mode"} eq "2")
{ print "<table border=0 cellpadding='2' cellspacing='2'>";
print "<form action='/cgi-bin/mitarbeiterliste.pl' method='post'>";
print "<tr><td colspan='9'><h2>Suchen</h2></td></tr>";
$parameter{mode}=3;
foreach (@spalten) {
print "<tr><td>$_:</td><td><input type='Text' name='$_' value='' size='25'</td></tr>";}
print "</table>";
print "<div align='center'><input type='Submit' name='search' value='Get that thing'</div>";
}
print "</table>\n";
print "</body></html>\n";
Pass auf ich möchte in meiner TXT Datei nach etwas suchen die TXT Datei hat 9 Zeilen die da lauten name, vorname . . . also sowas wie ne Kundendatei. Im mode 1 meines Skriptes wird die Gesamte Liste mit allen Mitarbietern angezeigt. Im mode 2 wird eine Suchmaske aufgerufen in der man Suchbegriffe eingeben kann. im mode 3 nun soll sie Ausgabe von mode 2 stattfinden. Ich weiss aber nicht wie ich eine Suche in mein Skript baue. Der mode 3 soll also meine mitarbeiterliste.txt öffnen und darin nach den Information suchen die ich in die Suchmaske eingegeben habe. Wie mache ich die Suchenfunktion.