Hallo Leuts, Ich habe ein Gästebuch Script und wollte es nun auf meinem HomePC laufen lassen. (apache+activeperl). Es läuft zwar ohne Fehlerausgabe in der errorlog, jedoch wird in die Datei nichts geschrieben, wie das das Script eigentlich vorsieht. Woran kann das liegen?
Hier die html Seite:
<html>
<body>
<h1>Mein Gästebuch</h1>
Bitte eintragen...<p>
<form action="cgi-bin/gaestebuch.pl" method="post">
<table>
<tr>
<td>Name</td>
<td><input type=text name="name" size=30></td>
</tr>
<tr>
<td>E-Mail</td>
<td><input type=text name="email" size=30></td>
</tr>
<tr>
<td>Ort</td>
<td><input type=text name="ort" size=30></td>
</tr>
<tr>
<td>Land</td>
<td><input type=text name="land" size=30></td>
</tr>
</table>
Kommentar:<br>
<textarea name="kommentar" rows=5 cols=45></textarea>
<p><input type=submit value="eintragen">
</form><p><hr><br>
<!--beginn-->
</body>
</html>
Und hier das PerlScript dazu:
#!d:/perl/bin/perl.exe
$gaestebuch = '../gaestebuch.html';
$trennzeichen = '<hr>';
$neu = 1;
if($ENV{'REQUEST_MODE'} eq 'GET')
{
$eingabe = $ENV{'QUERY_STRING'};
}
else
{
read(STDIN, $eingabe, $ENV{'CONTENT_LENGTH'});
}
@paare = split(/&/, $eingabe);
foreach $paar (@paare)
{
($schluessel, $wert) = split(/=/, $paar);
$wert =~ tr/+/ /;
$wert =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack
("C", hex($1))/eg;
$FORM{$schluessel} = $wert;
}
&fehler unless ($FORM {'name'} && $FORM {'kommentar'});
sub fehler
{
print "Content-Type: text/html\n\n";
print "<html><body><center>\n";
print "<h1>Unvollständige Angaben</h1></center>\n";
print "Es müssen mindestsn die Felder Name und ";
print "Kommentar ausgefüllt werden.<p>\n";
print "</body></html>";
exit;
}
sub lesen
{
open(DATEI,"<$gaestebuch") || die "Fehler";
@gaestebuch = <DATEI>;
close(DATEI);
}
sub suchen
{
open(DATEI,">$gaestebuch") || die "Fehler";
foreach (@gaestebuch)
{
if ($_ =~ m/<!--beginn-->/)
{
&eintrag;
}
else
{
print DATEI $_;
}
}
close (DATEI);
}
sub eintrag
{
if ($neu == 1)
{
print DATEI "<!--beginn-->\n";
}
print DATEI "<blockquote>$FORM{'kommentar'}
</blockquote>\n";
print DATEI "$FORM{'name'}";
if ($FORM{'email'})
{
print DATEI "\<$FORM{'email'}\><br>\n";
}
else
{
print DATEI "<br>\n";
}
if($FORM{'ort'})
{
print DATEI "$FORM{'ort'}";
}
if ($FORM{'land'})
{
print DATEI "$FORM{'land'}";
}
if ($FORM{'ort'} || $FORM{'land'})
{
print DATEI "<br>\n";
}
print DATEI "$trennzeichen<br>\n";
if ($neu == 0)
{
print DATEI "<!--beginn-->\n";
}
}
print "Location: $gaestebuch\n\n";
Wie gesagt, das Programm läuft anscheinend problemlos durch und print Location bringt mich auch zur html Seite, jedoch hat sich an ihr nichts verändert.
danke für die Hilfe
Datum: 01.08.2005-11:28
