#!/usr/bin/perl # Perl-Programm, dass Kommentare von Besuchern Ihrer WWW-Seiten in einer # Datei auf Ihrem Server speichert. Die Kommentare der # Besucher werden an das Ende der Kommentar-Datei angehaengt. $| = 1; use strict; # Diese Variablen muessen Sie anpassen my $file = "/home/admin/briefe.txt"; # Name und Pfad der Briefe-Datei # Muss fuer den HTTP-Daemon schreibbar sein my $url = "/comment.html"; # Server-Root-relative URL fuer "Zurueck" ################################################################################# # Ab hier muessen Sie nichts mehr aendern. my $datum = localtime(time); my $exlock=2; my $unlock=8; my %FORM = (); # Parsing the FORM-Input &parse_form; # Print Results of the form &return_html; sub return_html { print "Content-type: text/html\n\n"; print "\n"; print "Ihr Kommentar: $datum\n"; print "\n"; print "

Vielen Dank!

\n"; if ($FORM{'brief'} ne '') { print "Ihr Kommentar am $datum wurde gespeichert.\n"; } else { print "Sie haben nichts eingegeben - keine Speicherung.\n"; } print "
Zurück

\n"; # Alternativ geht folgendes # print "

Zurück

\n"; print "\n"; if ($FORM{'brief'} ne '') { open(FILE, ">> $file"); flock (FILE, $exlock); print FILE "


Datum: $datum
" ; print FILE $FORM{'brief'} ; flock (FILE, $unlock); close (FILE); } } sub parse_form { my ($buffer, @pairs, $pair, $name, $value); # Read in text if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } }