Christoph Schnauß: Gästebucheinträge oben einfügen

Beitrag lesen

hallo wahsaga,

hier liest du die bisherigen daten ein:

$outfile = ">> [...]gaeste/gaestebuch.htm";
open(OUTFILE, $outfile);

Das ist AKAIK nicht richtig. Wegen ">>" wird die gesamte Datei zum Schreiben geöffnet, und zwar so, daß grundsätzlich alles unten angehängt wird.

und hier gibst du die bisherigen daten wieder aus, gefolgt von den neuen:

print OUTFILE "

Nein. Hier wird in die geöffnete Datei etwas hineingeschrieben.

ändere also hier die reihenfolge, dann sollte es passen:
print "
<hr>

Damit wird nichts in die Datei geschrieben, sondern nur am Bildschirm ausgegeben, da der Handler fehlt. Es ist zwingend nötig, soweit ich weiß, daß
print OUTFILE [...]
geschrieben wird, da erst durch den Handler klar ist, daß tatsächlich in die geöffnete Datei geschrieben werden soll.

Die Reihenfolge umkehren kann man, indem man die gesamte bisherige Gästebuchdatei oder einen Teil davon in einen Array ausliest (was hier nicht geschieht), und die Gästebuchdatei dann mit ">" zum Überschreiben öffnet. Dann kann so weiterverfahren werden, wie du angegeben hast, also erst den "neuen Text" eingeben und darunter den Inhalt des Arrays wieder hineinschreiben.

Grüße aus Berlin

Christoph S.