Lars: Teil vom Perlscript wird ignoriert

Hallo.

Ich habe mir ein kleines Gästebuch (GB) mit Perl gebastelt. Das Script bekommt den neuen Eintrag als Variable mitgeliefert. Es liest das bestehende GB ein und schreibt es anschließend unter einfügen des neuen Eintrags neu. Anschließend soll zum (gerade neu geschriebenen) GB weitergeleitet werden. Genau letzteres klappt nicht immer. Genauer, es klappt beim ersten Eintrag, danach bleibt man auf der "neuer-Beitrag"-Seite stehen und wird nicht weitergeleitet. Das GB wird aber korrekt neu geschrieben. Also alles klappt, nur das Weiterleiten nicht, bzw. egal was ich in die "virtuelle" html schreibe, es wird ignoriert. Das beste: Es klappt in IE, Opera, Chrome und Safari einwandfrei, immer. Nur im FF und Seamonkey geht es nicht (bzw. nach dem 2. Eintrag nicht mehr). Ich bin verzweifelt, da ich den Fehler nicht finde. Ich nutze FF und daher nervt mich das total.

Hier mal das Ende des Scripts:

---
print $c->header();
print '
<html>
<head>
<META HTTP-EQUIV="refresh" CONTENT="0;URL=url.htm">
</head>
</html>';
---

Normalerweise sollte ich doch ne Fehlermeldung oder zumindest ne leere Seite mit dem obigen Quelltext kriegen, auch wenn die Weiterleitung nicht funktioniert aber FF bleibt wie gesagt auf der html mit dem Formular, welches das script aufruft, stehen.

Wo liegt mein Fehler, ich schnalle es nicht, vor allem da es ja in IE, Opera, Chrome, Safari läuft...

Hat jemand eine Ahnung?

Vielen Dank im Voraus!!!!!

Lars

  1. Hallo Lars,

    Nur im FF und Seamonkey geht es nicht (bzw. nach dem 2. Eintrag nicht mehr). Ich bin verzweifelt, da ich den Fehler nicht finde. Ich nutze FF und daher nervt mich das total.

    hm...
    Installiere Dir bitte HttpFox und sieh Dir die tatsächlich gesendeten Response-Header an, bzw. poste sie hier!

    Gruß aus Berlin!
    eddi

    1. Installiere Dir bitte HttpFox und sieh Dir die tatsächlich gesendeten Response-Header an, bzw. poste sie hier!

      Hallo.

      OK, nach absenden des Formulars bleibt er bei meinem Script hängen (NS_ERROR_ABORT). Klicke ich aufs script in der übersicht finde ich unter "content":
      Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED)

      unter "headers":

      (Request-Line) POST bla...bla/gb.pl HTTP/1.1
      Host www.bla...bla.de
      User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)
      Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
      Accept-Language de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
      Accept-Encoding gzip,deflate
      Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
      Keep-Alive 300
      Connection keep-alive
      Referer bla...bla/gb.htm
      Content-Type application/x-www-form-urlencoded
      Content-Length 38

      bla...bla hab ich natürlich eingefügt...

      Was sagt mir das? Sorry, kenn mich nicht so aus...

      DANKE schon mal für die schnellen Antworten!!!!

      Lars ( Exil-Berliner ;-) )

      1. Re:

        Das sidn die Request-Header, die Du mir zugesendet hast. Auf der rechten Seite des HttpFox' findes Du die jeweiligen Response-Header. Ich hatte deswegen gefragt, weil in Deinem Script etwas von $c->header(); header zu lesen war, die Frage Kategorie Perl und nicht HTML/XHTML betraf. So habe ich die Weiterleitung im HTML-Text gar nicht für voll genommen.

        Generell ist einer HTTP-Weiterleitung Vorzug vor einer HTML-Weiterleitung zu geben. Dazu könntest Du z. B. http://de.selfhtml.org/perl/module/cgi.htm#redirects@title=redirect() des CGI-Moduls nutzen

        Lars ( Exil-Berliner ;-) )

        Jib's ja janich'. Wad machs'De denn da draußen? Komm' rinn, noch is Plaß. ;)

        Gruß aus Berlin!
        eddi

        1. Generell ist einer HTTP-Weiterleitung Vorzug vor einer HTML-Weiterleitung zu geben. Dazu könntest Du z. B. http://de.selfhtml.org/perl/module/cgi.htm#redirects@title=redirect() des CGI-Moduls nutzen

          Ja das hab ich sogar auch schon probiert aber mit genau dem selben Ergebnis. Ich denke es liegt nicht daran, dass die Weiterleitung nicht geht. Dann hätte ich ja immerhin nen Output vom Script, was FF dann nur nicht nach meinen Wünschen interpretiert. Aber es gibt ja halt gar keinen Output. Der Response-Header-bereich ist leer.

          :-(

          Lars

          1. Re:

            Generell ist einer HTTP-Weiterleitung Vorzug vor einer HTML-Weiterleitung zu geben. Dazu könntest Du z. B. http://de.selfhtml.org/perl/module/cgi.htm#redirects@title=redirect() des CGI-Moduls nutzen

            Ja das hab ich sogar auch schon probiert aber mit genau dem selben Ergebnis. Ich denke es liegt nicht daran, dass die Weiterleitung nicht geht. Dann hätte ich ja immerhin nen Output vom Script, was FF dann nur nicht nach meinen Wünschen interpretiert. Aber es gibt ja halt gar keinen Output. Der Response-Header-bereich ist leer.

            Pragma hat es schon gefordert. Stelle bitte alle Deine Scriptversuche (auch das also mit dem $cgi->redirect()) online!

            Gruß aus Berlin!
            eddi

            1. Hier der Link zum GB
              http://tinyurl.com/y9xrvvd

              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;
              use CGI;
              use CGI::Carp qw(fatalsToBrowser);
              my $c = new CGI;
              my @werte = $c->param();
              my @zeilen;
              my @a;
              my ($name, $text, $i, $test, $count);
              my ($date, $datecom, $ip);
              my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);

              $name=$c->param("name");
              $text=$c->param("text");

              Datum, Zeit und IP

              $ENV{'PATH'} = '/usr/bin';
              $ip=$ENV{'REMOTE_ADDR'};
              $datecom = "/bin/date";
              $date = $datecom +"%d.%m.%Y";
              chop ($date);$Stunden = $Stunden < 10 ? $Stunden = "0".$Stunden : $Stunden;$Minuten = $Minuten < 10 ? $Minuten = "0".$Minuten : $Minuten;$Sekunden = $Sekunden < 10 ? $Sekunden = "0".$Sekunden : $Sekunden;

              ### Start ###  
              
              ### prüfen ob text leer ###  
              

              if ( $text eq "") {
              print $c->header();
              print '
              <html>
              <head>
              <META HTTP-EQUIV="refresh" CONTENT="3;URL=http://url/gbook.htm">
              </head>
              <body>
              <br><br><br><br><br>
              <p align="center"><b>Sie haben keinen Text eingegeben!</b></p>
              <p align="center">Sie werden zum G&auml;stebuch weitergeleitet...</p>
              </body>
              </html>
              ';

              }
              else {

              ### prüfen ob name leer ###  
              

              if ( $name eq "") { $name = "unbekannt" }

              ### gbook.htm lesen ###  
              

              open (gb, "</pfad/gbook.htm") or die "gbook.htm kann nicht geoeffnet werden!";
              flock (gb, 2);
              #@zeilen = split(/./, <gb>);
              @zeilen = <gb>;
              close gb or die "gb.txt kann nicht geschlossen werden!";

              ### gbook.htm schreiben ###  
              

              open (gb, ">/pfad/gbook.htm") or die "gbook.htm kann nicht geoeffnet werden!";
              flock (gb, 2);
              foreach $i (@zeilen) {
              @a = split(/#/, $i);
              if ( $a[1] eq "start" ) {
              $count = $a[2];
              $count += 1;
              print gb '<!--#start#'.$count.'-->'; print gb "\n";
              print gb '<tr><td colspan="2"><hr size="2" width="100%"></td></tr>'; print gb "\n";
              print gb '<tr><td align="right" width="60"><b>Name:</b></td><td><b>'.$name.'</b></td></tr>';
              print gb "\n";
              print gb '<tr><td align="right" width="60"><b>Datum:</b></td><td><b>'.$date.' um '.$Stunden.':'.$Minuten.'</b></td></tr>';
              print gb "\n";
              print gb '<tr><td align="right" width="60"><b>Browser:</b></td><td><b>'.$c->user_agent().'</b></td></tr>';
              print gb "\n";
              print gb '<tr><td align="center" width="60"><b>#'.$count.'</b></td><td>'.$text.'</td></tr>'; print gb "\n";
              }
              else {
              print gb "$i";
              }
              }
              close gb or die "gb.txt kann nicht geschlossen werden!";

              ### log-datei schreiben ###  
              

              open (logf, ">>/pfad/gblog.txt") or die "Kann gblog-Datei nicht oeffnen!";
              flock (logf, 2);
              print logf "$date#$Stunden:$Minuten:$Sekunden#$name#$ip\n";
              close logf or die "Kann gblog-Datei nicht schliessen!";

              ### HTML ###  
              
              Header

              #print $c->header('Location: http://url/gbook.htm');
              print $c->header();

              print '
              <html>
              <head>
              <META HTTP-EQUIV="refresh" CONTENT="0;URL=http://url/gbook.htm">
              </head>
              </html>';
              }

              1. Danke schon mal!!

              2. 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.

                1. :-D

                  Ich bin was Perl angeht ein Anfänger und html kann ich auch nur das, wass ich mir selbst beigebracht hab.

                  Aber schon witzig sein stümperhaftes Skript mal so auseinandergenommen zu bekommen ;-)

                  Danke für die Tipps (vor allem für den letzten), ich werd sie bei Gelegenheit auf jeden Fall mal verfolgen.

                  Noch mal zum Thema:
                  Funktionieren sollte es aber eigentlich oder was meinst Du? Es funktioniert ja wie gesagt auch für den ein oder anderen Browser...

                  Danke nochmals!

                  Lars

  2. hi,

    <META HTTP-EQUIV="refresh" CONTENT="0;URL=url.htm">

    ^ Pfadangabe?

    Fehlende Pfadanaben äußern sich oftmals darin, dass bestimmte Dinge nicht mit jedem Browser funktionieren.

    Hotte

    1. <META HTTP-EQUIV="refresh" CONTENT="0;URL=url.htm">
                                                   ^ Pfadangabe?

      Fehlende Pfadanaben äußern sich oftmals darin, dass bestimmte Dinge nicht mit jedem Browser funktionieren.

      Hi. Danke für die flotte Antwort!
      Ich hab die url nur ersetzt, in meinem Script stimmt sie ;-)

      Lars

      1. <META HTTP-EQUIV="refresh" CONTENT="0;URL=url.htm">

        Ich hab die url nur ersetzt, in meinem Script stimmt sie ;-)

        Mit oder ohne Pfadangabe?

        Hotte

        1. Mit oder ohne Pfadangabe?

          komplett ab http:\ bis gb.htm ;-)

          Daran liegt es sicher nicht, davon bin ich überzeugt.

          Lars

  3. Wo liegt mein Fehler, ich schnalle es nicht, vor allem da es ja in IE, Opera, Chrome, Safari läuft...

    Hat jemand eine Ahnung?

    Nein. Läßt sich mit deinen Angaben auch nicht sagen. Es läßt sich auch nicht sagen, ob es am Skript, am Browser oder an den Daten liegt. D.h. du musst dir eine sinnvolle Analysetaktik überlegen.

    Wenn es - wie du vermutest - am Browser liegt, dann kann es bedeuten, dass der output Schrott ist. Also, 1. Schritt: ist der HTML Code ok? (checken mit http://validator.w3.org)

    Struppi.

    1. Wenn es - wie du vermutest - am Browser liegt, dann kann es bedeuten, dass der output Schrott ist. Also, 1. Schritt: ist der HTML Code ok? (checken mit http://validator.w3.org)

      Struppi.

      Hi.

      Es gibt ja gar keinen Output, die ganze Aktion bleibt am Script hängen und FF bekommt keinen Output zurück. Warum aber IE, Opera usw. ???
      Das geht mir nicht in den Kopf.
      Habe die GB-Seite mal mit der von Dir geposteten Website (DANKE dafür!!!!) gecheckt. Sie enthält schon einige Unsauberkeiten/Fehler aber ich denke nicht, dass es daran liegt...

      Danke erst mal!

      Lars

      1. Es gibt ja gar keinen Output, die ganze Aktion bleibt am Script hängen und FF bekommt keinen Output zurück. Warum aber IE, Opera usw. ???
        Das geht mir nicht in den Kopf.
        Habe die GB-Seite mal mit der von Dir geposteten Website (DANKE dafür!!!!) gecheckt. Sie enthält schon einige Unsauberkeiten/Fehler aber ich denke nicht, dass es daran liegt...

        Dann scheint dein Script oder ein .htaccess in irgend einer Weise Requests, die vom FF getätigt werden, nicht beantworten zu wollen. Vielleicht spammst du zu viel mit dem FF. Spamme doch mal mehr mit Opera...

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. Dann scheint dein Script oder ein .htaccess in irgend einer Weise Requests, die vom FF getätigt werden, nicht beantworten zu wollen. Vielleicht spammst du zu viel mit dem FF. Spamme doch mal mehr mit Opera...

          Erst mal Danke! Aber ;-)...
          ...Sorry, was heißt das? Ich soll es einfach 100 mal mit Opera probieren und dann geht es mit Opera vielleicht auch nicht mehr? Oder was ist mit spammen gemeint?
          Und wie krieg ich es hin, dass es dann mit FF wieder geht???

          Besten Dank!

          Lars

      2. Es gibt ja gar keinen Output, die ganze Aktion bleibt am Script hängen und FF bekommt keinen Output zurück. Warum aber IE, Opera usw. ???

        Das ist Unsinn, kein Serverskript der Welt, bleibt im Browser "hängen".

        Habe die GB-Seite mal mit der von Dir geposteten Website (DANKE dafür!!!!) gecheckt. Sie enthält schon einige Unsauberkeiten/Fehler aber ich denke nicht, dass es daran liegt...

        das heißt also das du doch einen Output zurück bekommst?
        Du siehst ihn auch im Firefox in der Quelltext Ansicht?

        Struppi.

        1. Das ist Unsinn, kein Serverskript der Welt, bleibt im Browser "hängen".

          Huijuijui, wieso solch ein Ton? :'-( ... ;-)
          Vielleicht hab ich nicht die richtige Fachsprache drauf aber was ich meine ist, dass mir z.B. das Tool HTTP-Fox, welches mir empfohlen wurde, anzeigt, dass nach dem Absenden eines neuen Beitrages das script ins Spiel kommt und dort steht dann 'NS_ERROR_ABORT' und es passiert nix mehr:

          07:57:36.917 0.543 594 0 POST (Error) NS_ERROR_ABORT http://URL/gb.pl

          das heißt also das du doch einen Output zurück bekommst?
          Du siehst ihn auch im Firefox in der Quelltext Ansicht?

          Nein, ich bekomme keinen Output, ich habe nur einfach mal die Seite (GB-Seite), welche vom Script eingelesen und wieder neu geschrieben wird gecheckt.

          ... weiterhin ratlos...

          Danke soweit und weiterhin froh über Hilfe!!!!

          Lars

          1. Das ist Unsinn, kein Serverskript der Welt, bleibt im Browser "hängen".

            Huijuijui, wieso solch ein Ton? :'-( ... ;-)

            Naja, weil wir dir hier ziemlich viel aus der Nase ziehen müssen und deine Analysen eben nicht unbedingt zielführend sind.

            Vielleicht hab ich nicht die richtige Fachsprache drauf aber was ich meine ist, dass mir z.B. das Tool HTTP-Fox, welches mir empfohlen wurde, anzeigt, dass nach dem Absenden eines neuen Beitrages das script ins Spiel kommt und dort steht dann 'NS_ERROR_ABORT' und es passiert nix mehr:

            07:57:36.917 0.543 594 0 POST (Error) NS_ERROR_ABORT http://URL/gb.pl

            Das ist also der output des Skriptes? Dann läuft da irgendetwas falsch. Was passiert denn, wenn du das Skript in einem DOS Fenster oder einer Konsole aufrufst? Wie sieht die Ausgabe dort aus?

            Soweit ich das sehe, bedeutet dieser Fehlercode, dass du Escape gedrückt hast oder sonstwie den Request unterbrochen. Den Cache hast du mal geleert?

            das heißt also das du doch einen Output zurück bekommst?
            Du siehst ihn auch im Firefox in der Quelltext Ansicht?

            Nein, ich bekomme keinen Output, ich habe nur einfach mal die Seite (GB-Seite), welche vom Script eingelesen und wieder neu geschrieben wird gecheckt.

            Du verwirrst mich, wenn du eine Seite siehst, dann ist auch Quellcode da, wenn eine Seite leer ist muss das aber nicht heißen, dass es keinen Quellcode gibt. Du weißt wie du den Quellcode anschauen kannst?

            ... weiterhin ratlos...

            Naja, wir auch :-(

            Struppi.

            1. 07:57:36.917 0.543 594 0 POST (Error) NS_ERROR_ABORT http://URL/gb.pl

              Das ist also der output des Skriptes? Dann läuft da irgendetwas falsch. Was passiert denn, wenn du das Skript in einem DOS Fenster oder einer Konsole aufrufst? Wie sieht die Ausgabe dort aus?
              Den Cache hast du mal geleert?

              Also erst noch mal Danke für die Geduld!!!
              Ich befürchte, dass ich mein Problem nicht richtig erklären konnte, daher jetzt einfach mal der Link zum GB:
              http://tinyurl.com/y9xrvvd

              Versuch bitte einfacvh mal einen neuen beitrag zu posten, einmal mit FF (oder Seamonkey) einmal mit IE (oder Opera, Safari, Chrome).
              Ich hoffe nun verstehst Du, was ich mit "kein Output" meine ;-)

              Ich weiß, wie ich mir den Quelltext anschauen kann ;-) ist aber in meinem Fall nutzlos, da wirklich null neuer Quelltext kommt nach dem Aufruf des scriptes...

              Danke schon mal für weitere Hilfe!!!!!!!

              Lars

              1. Ich weiß, wie ich mir den Quelltext anschauen kann ;-) ist aber in meinem Fall nutzlos, da wirklich null neuer Quelltext kommt nach dem Aufruf des scriptes...

                Hast du mal in die Fehlerkonsole geschaut?

                Struppi.

                1. Hast du mal in die Fehlerkonsole geschaut?

                  *räusper* nein, wie komm ich daran?

                  Ich kann mich übrigens dort wo das script läuft nicht an eine Konsole anmelden...

                  Lars

                  1. Hast du mal in die Fehlerkonsole geschaut?

                    *räusper* nein, wie komm ich daran?

                    http://lmgtfy.com/?q=fehlerkonsole

                    Ich kann mich übrigens dort wo das script läuft nicht an eine Konsole anmelden...

                    Und du hast keine lokale Perl Installation? Das ist natürlich sehr umständlich. Aber das Problem liegt auch nicht am Perlskript.

                    Struppi.

                    1. http://lmgtfy.com/?q=fehlerkonsole

                      :-D großes Kino!

                      Sorry, wollte mich auch direkt entschuldigen, da ich es schon gegogglt hab (wurde dann aber aufgehalten).

                      Da steht "validate is not defined" aber wenn ich den Punkt (onsubmit=validate...) aus dem Formular entferne klappt es immer noch nicht.

                      Nein ich hab leider keine lokale Perl Installation. In der Tat ist das sehr mühselig aber mit solch einem Problem hatte ich noch nie zu kämpfen...

                      Hab gesehen, dass Du im GB warst, ist schon sehr mysteriös oder?

                      Danke erst mal!

                      Lars

                    2. Aber das Problem liegt auch nicht am Perlskript.

                      Ich wette dageben ;-)

                    3. Hallo struppi,

                      http://lmgtfy.com/?q=fehlerkonsole

                      Das ist ja genial! :)))

                      Gruß aus Berlin!
                      eddi

      3. Habe die GB-Seite mal mit der von Dir geposteten Website (DANKE dafür!!!!) gecheckt. Sie enthält schon einige Unsauberkeiten/Fehler aber ich denke nicht, dass es daran liegt...

        Ach und noch was - wieso denkst du das?

        Struppi.

        1. Habe die GB-Seite mal mit der von Dir geposteten Website (DANKE dafür!!!!) gecheckt. Sie enthält schon einige Unsauberkeiten/Fehler aber ich denke nicht, dass es daran liegt...

          Ach und noch was - wieso denkst du das?

          Struppi.

          Ich denke, dass es nicht an den Fehlern auf der Seite liegt, da ja wie gesagt FF gar nix bekommt, was einen Fehler enthalten könnte...

  4. Hüftschuss: Deinem FF AdBlock schmeckt irgendwas nicht?
    Ansonsten: Online Beispiel bitte.

    1. Hüftschuss: Deinem FF AdBlock schmeckt irgendwas nicht?
      Ansonsten: Online Beispiel bitte.

      Der Link zum GB:

      http://tinyurl.com/y9xrvvd

      1. Danke schon mal!!

      2. Dein Script produziert zur Laufzeit eine ganze Menge warnings, die ausgegeben werden, bevor Du "print $c->header();" sagst.

        Das führt zu einem recht eigentümlichen Header, an dem sich der FF verschluckt.

        Mach Dein "print $c->header();" mal direkt nach "my $c = new CGI;", dann solltest Du es sehen. Behebe die dann sichtbaren Probleme und alles wird gut.

        1. Dein Script produziert zur Laufzeit eine ganze Menge warnings, die ausgegeben werden, bevor Du "print $c->header();" sagst.

          Super.

          Daher schon meine Frage ob er das Skript mal in einer Konsole getestet hat.

          Mach Dein "print $c->header();" mal direkt nach "my $c = new CGI;", dann solltest Du es sehen. Behebe die dann sichtbaren Probleme und alles wird gut.

          Die Warnungen werden vermutlich noch davor ausgespuckt. Da er aber sowieso schon CGI::Carp verwendet, wäre das eine Möglichkeit:

          use CGI::Carp qw(fatalsToBrowser warningsToBrowser);

          Struppi.

          1. Dein Script produziert zur Laufzeit eine ganze Menge warnings, die ausgegeben werden, bevor Du "print $c->header();" sagst.
            Mach Dein "print $c->header();" mal direkt nach "my $c = new CGI;", dann solltest Du es sehen. Behebe die dann sichtbaren Probleme und alles wird gut.

            » Die Warnungen werden vermutlich noch davor ausgespuckt. Da er aber sowieso schon CGI::Carp verwendet, wäre das eine Möglichkeit:

            use CGI::Carp qw(fatalsToBrowser warningsToBrowser);

            Leute Ihr seid der Hammer! ich denke ich bin jetzt ca. 1 cm vor der Zielgeraden! Riesen Dank schon mal!

            Ich habe leider ein kleines Problem, was doch eher ein großes ist:
            Der Server auf dem mein Script läuft verschluckt (warum auch immer) alle Fehlermeldungen/Warnungen und gibt mir nur die Nachricht, dass es ein Problem gab aber eben ohne die Fehlermeldung (könnt es ja jetzt mal testen).

            Ich hoffe Ihr rastet jetzt nicht völlig aus aber Du (Pragma) meintest das Script wirft warnungen aus, also hast du es wohl irgendwie lokal getestet. Könntest Du mir sagen was faul ist, damit ich es beheben kann?
            Ich weiß, ich nerve aber ich weiß nicht wie ich sonst an die Fehlermeldungen kommen kann?

            Auf jeden Fall nochmals ein dickes Dankeschön an alle die mir hier bisher so geduldig geholfen haben!!!!!

            Lars

            1. Du (Pragma) meintest das Script wirft warnungen aus, also hast du es wohl irgendwie lokal getestet. Könntest Du mir sagen was faul ist, damit ich es beheben kann?

              Nö:
              wget -S "http://www.uni-bonn.de/cgi-bin/cgiwrap/zimmerla/gb.pl?name=test&text=testea&"

              Eben war das entscheidend:
              ...
              d word at /home/zimmerla/public_html/cgi-bin/gb.pl line 90., 27:42 2009] gb.pl:
              Unquoted string "logf" may clash with future reserved word at /home/zimmerla/pub
              lic_html/cgi-bin/gb.pl line 91., 27:42 2009] gb.pl: Unquoted string "logf" may c
              lash with future reserved word at /home/zimmerla/public_html/cgi-bin/gb.pl line
              92., 27:42 2009] gb.pl: Unquoted string "logf" may clash with future reserved wo
              rd at /home/zimmerla/public_html/cgi-bin/gb.pl line 93., 27:42 2009] gb.pl: Use
              of uninitialized value at /home/zimmerla/public_html/cgi-bin/gb.pl line 69
              ....

              Jetzt dieses:
              500 Internal Server Error

              Du hast also eben irgendwas kaputt(er) gemacht.

              1. Ah, so einfach kann man das testen! BESTEN DANK!

                Seltsam, dass es nun quasi schlimmer ist. Naja ich teste mal weiter.

                Danke soweit, ich melde mich wieder.

                Lars

                1. ES FUNKTIONIERT!!

                  DANKE! DANKE! DANKE! an alle!
                  Ohne Eure Hilfe wäre ich echt aufgeschmissen gewesen. Am Ende waren es tatsächlich nur einige Unsauberkeiten im Skript.

                  Nochmals Danke!

                  Bis neulich,

                  Lars

          2. Wenn ich übrigens nur fatalsToBrowser angebe kommt folgende meldung:

            Software error:
            Execution of /home/zimmerla/public_html/cgi-bin/gb.pl aborted due to compilation errors.

            Und nun geht es auch in Opera und IE nicht mehr... also es kommt die "pinke" Fehlermeldung...

  5. ES FUNKTIONIERT!!

    DANKE! DANKE! DANKE! an alle!
    Ohne Eure Hilfe wäre ich echt aufgeschmissen gewesen. Am Ende waren es tatsächlich nur einige Unsauberkeiten im Skript.

    Nochmals Danke!

    Bis neulich,

    Lars

    1. Ohne Eure Hilfe wäre ich echt aufgeschmissen gewesen. Am Ende waren es tatsächlich nur einige Unsauberkeiten im Skript.

      Du könntest dir (und in dem Fall vielleicht auch uns) das Leben mit einer lokalen Perlinstalltion leichter machen. Dann wären dir die unsauberkeiten vielleicht früher aufgefallen.

      Nochmals Danke!

      Kein Problem, dafür sind wir hier ;-)

      Struppi.

      1. Du könntest dir (und in dem Fall vielleicht auch uns) das Leben mit einer lokalen Perlinstalltion leichter machen. Dann wären dir die unsauberkeiten vielleicht früher aufgefallen.

        Ich weiß, im Nachhinein ist es echt ärgerlich. Fürs nächste mal, ist das das erste was ich mache, versprochen! ;-)

        tschö