Arno Steinwender: flock würgt Skript ab

Hallo liebe Wissenden!

Ich betreibe die Spieleseite www.spieletest.at, für die ich mir eine kleine "Datenbank" zusammengebastelt habe! CGI Skripts lesen aus TXT Files aus. Es gibt auch eine kleine selber geschriebene Statstik, sodass ich weiss mit welchen Argumenten das "Hauptskript" (spiele.cgi) aufgerufen wird (also welche Spielekritiken gelesen werden). spiele.cgi inkludiert statistik.pm!

statistik.pm öffnet eine Statistikdatei und flockt sie, Das ging auch wunderbar. Nun ziehe ich aber mit der Seite um und nichts geht mehr! Das Skript stürzt genau bei der flock Zeile ab (auch lokal zu Hause).

spiele.cgi (ruft statistik.pm auf): http://www.steinwender.co.uk/cgi-bin/spiele.cgi?Spiel=2
bzw. als *.txt: http://www.steinwender.co.uk/statistikPM.txt

statistik.pm (hier liegt das flock Problem): http://www.steinwender.co.uk/statistikPM.txt

Die flocks sind derzeit als Kommentar (z.B. Zeile 34)
Interessanterweise gibt es ein flock das zu funktionieren scheint (siehe Zeile 275). Ich weiß aber nicht warum!

Ich habe keine Ahnung mehr was ich noch ausprobieren könnte! Bitte um Hilfe!!!

  1. hi hi

    benutz doch mal das use CGI::Carp qw(fatalsToBrowser); damit bekommst du fehlermeldungen in den browser geschrieben

    hier http://selfhtml.teamone.de/cgiperl/funktionen/einausgabe.htm#flock steht was davon das nicht alle OS flock unterstützen

    ich hoffe es hilft etwas :-)

    bis bis roman

  2. statistik.pm (hier liegt das flock Problem): http://www.steinwender.co.uk/statistikPM.txt

    Ohje, du solltest dir wirklich mal Perlstyle anschauen.
    http://perldoc.com/perl5.8.0/pod/perlstyle.html

    Und vor allem soltest du use strict verwenden und die Warnungen einschalten, gerade für Anfänger und bei der Entwicklung von grossen Projekten ist es wichitg Fehler schnell zu finden und use strict hilft dir enorm dabei.

    noch en paar Tipps:

    open(STATISTIK, "<../spiele.txt") || die "Statistikdatei nicht gefunden\n";

    Diese Aussage ist so nicht richtig. verwende $! zum anzeigen was wirklich schief gelaufen ist:

    open(STATISTIK, "<../spiele.txt") || die "Fehler beim öffnen von ../spiele.txt: $!";

    Du kannst, wenn du keine Variabeln verwendest, Text auch mit einfachen Hochkommas umschliessen und dir das maskieren von " sparen.

    print '</td><td width="209">Langzeitspass: <br>';

    Ausserdem, wenn du schon das CGI Modul einbindest (es ist immerhin mehr als 200 KB Code), warum setzt du es nicht ein?

    Der ganze Code ist nicht wirklich schön, auch der HTML/CSS Code. Es ist immer wieder Lustig zu sehen, dass CSS eingesetzt wird und dann ist der einzige Zweck der Hover Effekt. CSS ist zum layouten einer Seite gedacht, nicht für Spielereien, du kannst dir die ganzen <font> Tags sparen, du kannst dir solche Konstrukte sparen <p> </p> und so weiter. Du könntest es dir alles wesentlich einfacher machen, wenn du dir mal ein paar Dokumentationen und Anleitungen anschaust bevor du ein so umfangreiches Skript entwickelst.

    Vor allem Perldoc sei dir an's Herz gelegt, ist übrigens auch auf deiner Festplatte.

    Struppi.