#!/usr/bin/perl -w
use Fcntl qw(:DEFAULT :flock);
$Zeit_Berichtigung = +3.25;
$date = localtime(time+($Zeit_Berichtigung*3600));
chop($date);
&parse_form;
$in{'Kommentar'} =~ s/<script//img;
$in{'Kommentar'} =~ s/<style//img;
$in{'username'} =~ s/\n//mg;
$in{'username'} =~ s/\r//mg;
$in{'email'} =~ s/</</mg;
$in{'email'} =~ s/\n//mg;
$in{'email'} =~ s/\r//mg;
print "Content-type: text/html\n\n";
if ($in{'email'} !~m/.*@.*..*/i)
{
print "<html>\n<head><title>Fehler</title>\n</head>\n<Body BACKGROUND="http://www.8ung.at/hellofweb/gfx/rk.jpg" text="ff9900" LINK="#f76809" VLINK="#f76809" ALINK="#f76809">\n<p><center><h3>Du musst eine richtige E-Mail Adresse eingeben.</h3></center></p>\n";
exit;
}
elsif ($in{'username'} eq "") {
print "<html>\n<head><title>Fehler</title>\n</head>\n<Body BACKGROUND="http://www.8ung.at/hellofweb/gfx/rk.jpg" text="ff9900" LINK="#f76809" VLINK="#f76809"
ALINK="#f76809">\n<p><center><h3>Bitte einen Namen eingeben</h3></center></p>\n";
}
elsif ($in{'Kommentar'} eq "") {
print "<html>\n<head><title>Fehler</title>\n</head>\n<Body BACKGROUND="http://www.8ung.at/hellofweb/gfx/rk.jpg" text="ff9900" LINK="#f76809" VLINK="#f76809"
ALINK="#f76809">\n<p><center><h3>Na, Text braeuchten wir schon</h3></center></p>\n";
}
else {
&start;
}
Dankesseite ausgeben
sub start {
print "<HTML>\n";
print "<head><title>Neueintrag in das Gästebuch</title></head>\n";
print "<body background="http://www.8ung.at/hellofweb/gfx/rk.jpg" text="ff9900" link="#FF6600" vlink="#FF6600" alink="#FF6600" bgproperties="fixed">\n";
print "<blockquote><center>\n";
print "<H2>Neueintrag in das Gästebuch</H2>\n";
print "am $date<p>\n";
print "<HR size="1">\n";
print "</center><p>\n";
print "Wir haben von Ihnen folgende Angaben erhalten:<p> \n";
print "<ul> \n";
print "<li>Name: <b>$in{'username'}</b></li>\n";
print "<li>E-Mail Adresse: <b>$in{'email'}</b></li>\n";
print "<li>Webseite: <b>$in{'website'}</b></li>\n";
print "<li>Kommentar:<br></li>\n";
print "<b>$in{'Kommentar'}</b>\n";
print "</ul><p>\n";
print "<HR size="1">\n";
print "Vielen Dank für Ihren Eintrag in unserem <a href="http://www.1blubba1.f2s.com/gaestebuch.html">Gaestebuch</a></p></blockquote>\n";
&gaestebuch;
print "</BODY>\n";
print "</HTML>\n";
}
Gaestebuch
sub gaestebuch {
$outfile = "/web/sites/195/12azra21/www.1blubba1.f2s.com/gaestebuch.html";
open(FILE,"$outfile") or die "\Datei $outfile konnte nicht geoeffnet werden\n";
@LINES=<FILE>;
close(FILE);
$SIZE=@LINES;
open(OUTFILE,">$outfile") or die "\Datei $outfile konnte nicht geoeffnet werden\n";
flock(OUTFILE, LOCK_EX) or die "\Cannot lock $outfile\n";
for ($i=0;$i<=$SIZE;$i++) {
$_=$LINES[$i];
if (/<!--begin-->/) {
print OUTFILE "
<p>Am $date schrieb <b>$in{'username'}</b> (E-Mail: <a href=mailto:$in{'email'}>$in{'email'}</a>) das folgende in unser Gästebuch.</p>
<p>Kommentar:<br>
<b>$in{'Kommentar'}</b></p>\n
<p>Homepage: <a href="$in{'website'}">$in{'website'}</a></p>\n
<p><div align="right"><font size="-2">IP: $ENV{'REMOTE_ADDR'}</font></div></p>
<hr size="1">\n
";
close(OUTFILE); }
}
}
sub parse_form {
local ($buffer, @pairs, $pair, $name, $value);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
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;
$in{$name} = $value;
}
}
---------------------------------------------------
also, wieso wird hier die gaestebuch.html mit dem Eintrag ueberschrieben, statt den Gaestebucheintrag hinter das <!--begin-->
zu schreiben ? mit >>$outfile statt >$outfile wuerde ja das abschließende </body></html> am ende der gaestebuch.html an der falschen stelle sein, da die Eintraege einfach an das ende der datei angehaengt werden wuerden, aber wieso wird die gaestebuch.html mit >$outfile gerade ersetzt ?
das ist auch der Teil vom code, den ich von matt's Gaestebuch uebernommen habe und eigentlich sehe ich hier auch keinen Fehler :(
mfg: <a href="http://www.8ung.at/hellofweb">azrael</a>
http://www.1blubba1.f2s.com/gaestebuch.html