das script mit dem redirect hab ich nicht mehr, ich poste jetzt einfach mal das komplette Script:
#!/usr/local/bin/perl -w
gb.pl
Gästebuch
use strict;
-w und strict ist erstmal sehr löblich.
$ENV{'PATH'} = '/usr/bin';
$ip=$ENV{'REMOTE_ADDR'};
$datecom = "/bin/date";
$date =$datecom +"%d.%m.%Y"
;
wieso das?
chop ($date);$Stunden = $Stunden < 10 ? $Stunden = "0".$Stunden : $Stunden;$Minuten = $Minuten < 10 ? $Minuten = "0".$Minuten : $Minuten;$Sekunden = $Sekunden < 10 ? $Sekunden = "0".$Sekunden : $Sekunden;
So etwas zu formatieren geht wesentlich komfortabler mit sprintf.
print $c->header();
print '
<html>
Ich finde es immer seltsam, wenn die Leute ein riesiges Modul einbinden (CGI.pm) und dann nur einen Bruchteil der Funktionen nutzen. Lies mal die Doku zum Modul, du kannst damit auch Prima HTML ausgeben.
<br><br><br><br><br>
Das ist zwar OT hier, aber du solltest dich mal mit CSS beschäftigen, sowas macht man heutzutage nicht mehr.
open (gb, "</pfad/gbook.htm") or die "gbook.htm kann nicht geoeffnet werden!";
flock (gb, 2);
...
close gb or die "gb.txt kann nicht geschlossen werden!";
...
open (gb, ">/pfad/gbook.htm") or die "gbook.htm kann nicht geoeffnet werden!";
flock (gb, 2);
...
close gb or die "gb.txt kann nicht geschlossen werden!";
Dein flock Mechanismus ist so völlig unnütz. Jedesmal wenn du die Datei schliesst, kann ein anderer Prozess wieder auf die Datei zugreifen, dann werden Änderungen u.U. nicht übernommen. wenn du schon die Datei sperren willst, dann musst du dies am Anfang des skripte machen und erst ganz am Schluss die Datei wieder schliessen, was aber bedeutet, dass du die Datei zum lesen und schreiben öffnen musst und entsprechend mit seek und truncate arbeiten musst.
Struppi.