Hi,
weil mein Counter (von Goweb) in letzter Zeit nicht gerade zuverlässig ist, habe ich mich entschlossen, ein Counter in PERL zu schreiben. Soweit so gut. Auf meinem Rechner (Win95) läuft es einwandfrei. Auf meiner Site (Apache unter Unix) läuft es leider nicht. Ich habe auch die nötigen Sachen angepaßt und die Zugriffsrechte auch (ich hab's mit 777 und 755 probiert).
755 muß reichen. Ist der Server denn für CGI konfiguriert? Laufen andere CGIs, ist also z.B. das cgi-bin auch richtig ge-chmod-et?
#!/usr/bin/perl
Ich hoffe mal, das stimmt :-)
@zeilen = ("");
open(COUNT, "<$BASEDIR/ml/count.txt");
while(<COUNT>)
»» {
»» push(@zeilen,$_);
»» }
close(COUNT);
open(COUNT,"<$BASEDIR/ml/count.txt");
$counter = <COUNT>;
close(COUNT);
Du willst doch nur eine Zeile drinhaben, oder? ;-) Außerdem solltest Du auch hier auf die richtigen Rechte achten. Alle Dateien und Verzeichnisse müssen (glaube ich) mindestens 644 haben, das Verzeichnis evtl. auch 666.
$counter = ++$zeilen[1]; #counter wird inkrementiert
Die erste Zeile 1 der Datei wäre $zeilen[0]!
@zeichen = split(//,$zeilen[1]); #Der Counterwert wird gesplittet (Counter besteht aus 4 Ziffern und wird in 4 Teilen geteilt)
#Erzeugung von HTML-Code
$grafik[0] = "<img src=../ml/digits/$zeichen[0].gif>";
$grafik[1] = "<img src=../ml/digits/$zeichen[1].gif>";
$grafik[2] = "<img src=../ml/digits/$zeichen[2].gif>";
$grafik[3] = "<img src=../ml/digits/$zeichen[3].gif>";
for ($i=0; $i<=3; $i++) { $grafik[$i] = "...$zeichen[$i].gif>"; }
#Counter-Datei wird mit dem neuen Wert überschrieben.
open(COUNT2, ">$BASEDIR/ml/count.txt");
print COUNT2 $counter;
close(COUNT2);
Du kannst ruhig COUNT wiederverwenden ;-)
»» <link rel=stylesheet type="text/css" href="../ml/style.css">
Nimm lieber 'nen absoluten Pfad. Wenn Du den richtigen relativen findest, geht das natürlich auch :-)
Einen richtigen Fehler konnte ich allerdings auch nicht finden. Hast Du die Datei im ASCII-Modus übertragen? Was sagt perl -c script.pl?
Cheatah