#!/usr/bin/perl # # Variablen # $| = 1; use strict; my $exlock=2; my $unlock=8; my $orig="/home/httpd/htdocs/pinnwand/.guestbook.txt"; my $time=localtime(time); my $remotehost=$ENV{'REMOTE_HOST'}; my $remoteaddr=$ENV{'REMOTE_ADDR'}; my %FORM = (); &parse_form; $FORM{'INHALT'} =~ s/\n/
\n/g; # Returns erhalten im HTML # *************************************************************************** # Web-page fuer den Betrachter kreieren mit ok-Meldung # *************************************************************************** print <Pinnwand

Danke

EOF if ($FORM{NAME} ne "") { print "Lieber $FORM{NAME}"; print ",

" } else { print "Lieber Anonymous (etwa schüchtern? :-),

" } print "Dein Beitrag wurde in die Pinwand aufgenommen und " ; print "kann sofort gelesen werden.

\n" ; # # neue Datei anlegen # if ( open (OUT, ">>" . $orig) ) { flock (OUT, $exlock); # Trenner ausgeben print OUT "


\n"; # Sofern vorhanden: Ueberschrift ausgeben print OUT "

$FORM{'HEADLINE'}

" if ($FORM{'HEADLINE'} ne ""); # Eigentlichen Inhalt ausgeben print OUT "$FORM{'INHALT'}"; print OUT "

"; # Sofern vorhanden: E-Mailadresse ausgeben if ($FORM{'EMAIL'} ne "") { print OUT "E-Mail: "; if ($FORM{'NAME'} eq "") { print OUT "$FORM{'EMAIL'}"; } else { print OUT "$FORM{'NAME'}"; } print OUT "
"; } # Sofern vohanden: URL ausgeben if ($FORM{'URL'} ne "") { print OUT "URL: "; if ($FORM{'NAME'} eq "") { print OUT "$FORM{'URL'}"; } else { print OUT "$FORM{'NAME'}"; } print OUT "
"; } # Noch etwas Info ausgeben print OUT "Posted from $remotehost "; print OUT "($remoteaddr) " if ($remoteaddr ne ""); print OUT "at ($time)

\n"; flock (OUT, $unlock); close OUT; } else { print "Cannot write to data file $orig." }; exit 0; 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; } }