MudGuard: Gästebuch

Beitrag lesen

Hi,

<form action="cgi-bin\guestbook.pl" name="questbook" target="_top" method="post" enctype="multipart/form-data">

Bei URLs ist / das Trennzeichen, nicht \

my $cgi = new CGI;
my  @name = $cgi->param('name');

Mehrere Namen? Wie soll das bei Deinem Formular gehen?

my @kommentar = $cgi->param('kommentar');

Same here.

my @datei;
my @alt;
my @neu;
open(DATEI, "<neu.html");
@datei = <DATEI>;
close(DATEI);

foreach(@datei)
{push(@alt,$_)};

push(@alt,@datei);
wobei Du dieses sparen könntest, wenn Du die Datei direkt in @alt einlesen würdest.

foreach(@name)
{push(@alt,$_)};

push(@alt,@name)
bzw.
push(@alt, $name), denn Du hast ja eigentlich nur einen Namen, also keinen Grund, eine Liste aufzumachen.

foreach(@kommentar)
{push(@alt,$_)};

s.o.

foreach (@alt)
{if(/^<!-- NEU -->/)
{push(@neu,$_);}
push(@alt,"<!-- NEU -->\n");};

open(DATEI, "<neu.html");

Jetzt liest Du schon wieder die Datei. Der Inhalt steht doch noch in @datei

$, = "<br>";
print "@neu";

Hier gibt Dein CGI etwas auf STDOUT, also an den http-Client, aus.
Aber vorher wurde kein http-header gesendet.
Außerdem könnte @neu hier sogar leer sein.

close(DATEI);

cu,
Andreas

--
Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.