Pat: Aufruf klappt nicht mit NETSCAPE browser

hallo leute!

ich hab ein cgi script welches in perl geschrieben ist und über eine html seite per meta refresh automatisch geladen wird ! das funktioniert im ie auch alles wunerbar einfach nur mein netscape browser (4.7) will mir das ding nicht öffnen es kommt ständig die meldung dass er das ding abspeichern will  ! auch wenn ich das script direkt anwähle kommt diese meldung !

was muss ich dem browser mitteilen das er versteht was da kommt ? dateinamenendung in pl hat auch nix gebracht!

thx
pat

  1. Hallo Pat!

    folgende Voraussetzungen für perl-scripts:

    1. Server muss sie als script erkennen (scheint bei Dir so zu sein)
    2. das script muss einen HEADER senden (printf "content-type:text/html\n\n";)
    (wichtig sind die \n\n am ende)
    3. die scripte muessen ausfuehrbar gemacht werden (chmod 755)
    (scheint bei Dir auch ok zu sein)

    Dann muesste alles klappen, auch mit NC

    Gruß
    Thomas

    1. Hallo Pat!

      folgende Voraussetzungen für perl-scripts:

      1. Server muss sie als script erkennen (scheint bei Dir so zu sein)
      2. das script muss einen HEADER senden (printf "content-type:text/html\n\n";)
        (wichtig sind die \n\n am ende)
      3. die scripte muessen ausfuehrbar gemacht werden (chmod 755)
        (scheint bei Dir auch ok zu sein)

      Dann muesste alles klappen, auch mit NC

      hallo thomas !

      problem ist wenn ich das printf einfüge dann schreibt dass script mir das ja auch auf die html seite !
      warum ? und mit tc läuft es immer noch nicht !

      pat

      1. problem ist wenn ich das printf einfüge dann schreibt dass script mir das ja auch auf die html seite !
        warum ?

        Dass muss es, damit der Browser weiss, dass er jetzt ein html-file erhaelt!

        diese Anweisung muss vor dem <HEAD> kommen:

        printf ("content-type:text/html\n\n");
        printf ("<HEAD><TITLE>.....\n");

        usw.

        Gruß
        Thomas

        1. problem ist wenn ich das printf einfüge dann schreibt dass script mir das ja auch auf die html seite !
          warum ?

          Dass muss es, damit der Browser weiss, dass er jetzt ein html-file erhaelt!

          diese Anweisung muss vor dem <HEAD> kommen:

          printf ("content-type:text/html\n\n");
          printf ("<HEAD><TITLE>.....\n");

          das funkt leider auch nicht !
          und du meinst man kann das mit dem sichtbaren Content type auf der seite nicht umgehen ?

          1. Das einzige, was mir dazu noch einfaellt:

            poste doch mal den Aufruf (meta-refresh)!

            vielleicht liegts ja daran.

            wir haben bei uns im Intranet auch ewig Probleme gehabt, um es auf beiden Browsern (oder vielmehr 3, weil IE4 und IE5 inkompatibel sind) lauffaehig zu machen.

            Gruß
            Thomas

            1. Das einzige, was mir dazu noch einfaellt:

              poste doch mal den Aufruf (meta-refresh)!

              vielleicht liegts ja daran.

              wir haben bei uns im Intranet auch ewig Probleme gehabt, um es auf beiden Browsern (oder vielmehr 3, weil IE4 und IE5 inkompatibel sind) lauffaehig zu machen.

              hi thomas !

              hier is das ding ! aber ich glaube nicht das es darana liegt denn bei einem direktaufruf der cgi datei mit dem netscape will er ja auch die ganze zeit saven !

              <meta http-equiv="refresh" content="0; URL=/cgi-bin/advent.cgi">

              greets  PAT

              1. Hi Pat!

                mir faellt momentan nix dazu ein.

                mail mere the quelltext an i versuch to kuck whats falsch thereran.

                ich come aber first an the wochenend dazu.

                sorry

                Gruß
                Thomas

      2. Hi!

        problem ist wenn ich das printf einfüge dann schreibt dass script mir das ja auch auf die html seite !
        warum ? und mit tc läuft es immer noch nicht !

        Mmh, also wird vermutlich schon ein anderer Header ausgegeben? Also der Reihe nach:

        • Welchen Webserver verwendest Du?
        • In welcher Version liegt der IE vor, der die Seite darstellt (zufaellig IE5?)?
        • Gibt es in dem Script schon irgendwo eine Zeile die wie
              print "Content-Type ..." aussieht?  Wenn nein, gibt es einen Aufruf wie z.B.
              use CGI; ?

        Hab ich was vergessen? Wer weiss, beantworte erstmal die Fragen, dann schauen wir mal.

        Calocybe

        1. Hi!

          • Welchen Webserver verwendest Du? ------- NT
          • In welcher Version liegt der IE vor, der die Seite darstellt (zufaellig IE5?)? ---------- IE5 und IE4 funkt auf beiden
          • Gibt es in dem Script schon irgendwo eine Zeile die wie
                print "Content-Type ..." aussieht?  Wenn nein, gibt es einen Aufruf wie z.B.
                use CGI; ? ------ NEIN !!!

          und nu?

          pat

          1. Hi again!

            • Welchen Webserver verwendest Du? ------- NT

            Du meinst IIS?

            • In welcher Version liegt der IE vor, der die Seite darstellt (zufaellig IE5?)? ---------- IE5 und IE4 funkt auf beiden
            • Gibt es in dem Script schon irgendwo eine Zeile die wie
                  print "Content-Type ..." aussieht?  Wenn nein, gibt es einen Aufruf wie z.B.
                  use CGI; ? ------ NEIN !!!

            und nu?

            Da faellt mir auch nicht mehr viel dazu ein. Allerdings folgendes: Gibt man keinen Content-Type aus, so meldet der IIS einen Fehler. Deshalb hast Du die entsprechende Stelle vermutlich nur nicht gefunden.

            Es scheint irgend ein Content-Type ausgegeben zu werden, fuer den Dein Netscape nicht konfiguriert ist. Der IE5 interpretiert sowieso alles HTML, was ihm unter die Finger kommt, nach dem kannst Du Dich also nicht richten. Aber der IE4... der kennt den gesendeten Typ offenbar.

            Leider kann ich Dir nun auch nicht weiterhelfen, da ich dann gleich fuer ein paar Tage offline gehe. Aber Du kannst ja einfach mal die URL posten. Dann kann man mit einem Telnet-Client mal draufgehen und sich ganz genau anschauen, was da wirklich geliefert wird.

            Bye, Calocybe

  2. ich hab ein cgi script welches in perl geschrieben ist und über eine html seite per meta refresh automatisch geladen wird ! das funktioniert im ie auch alles wunerbar einfach nur mein netscape browser (4.7) will mir das ding nicht öffnen es kommt ständig die meldung dass er das ding abspeichern will  ! auch wenn ich das script direkt anwähle kommt diese meldung !
    was muss ich dem browser mitteilen das er versteht was da kommt ? dateinamenendung in pl hat auch nix gebracht!

    Also nach den beschriebenen Effekten dürften wir uns klar darüber sein, daß das Skript selbst funktioniert. Es macht also gar keinen Sinn, das Skript umzubenennen.
    Das, was nicht funktioniert, ist die Umsetzung zwischen dem Datenformat, welches das Skript ausgibt, und der entsprechenden Interpretationsvorschrift im Browser.

    Dazu müßten wir aber beide erst mal haben.

    Den Header bekommst Du beispielsweise, indem Du mit telnet (!) einen HTTP-Call an den Webserver schickst, beispielsweise:

    GET / HTTP/1.0
    (ersetze "/" Durch Deine Skript-URL *ohne* Hostname)
    und danach eine Leerzeile

    an den Port 80 Deines Webservers.
    Dann bekommst Du die Seite in ihrer vollen "Schönheit" zu sehen, insbesondere auch den Header davor. (Du darfst dann also selber "Browser spielen".)
    Denn irgendwas schickt da irgendwer - ob Dein Skript oder vielleicht defaultmäßig der Webserver, das können wir derzeit noch nicht unterscheiden.

    Sobald Du den MIME-Type hast, dann kannst Du in der Konfiguration von Netscape nachsehen, ob der dort definiert ist. Und wenn nicht, dann definiert man ihn vermutlich einfach im Optionen-Dialog.