martin: Skript klappt nach Verlinkung nicht

Hallo Perler,

ich habe nochmal ein Problem. Ich bin mit einem Gästebuch-Perl-Skript fertig und es klappt auch, wenn ich die Adresse ("Pfad/guestbook.pl") direkt in den Browser gebe. Wenn ich allerdings versuche, von einer normalen HTML-Seite durch einen Link in mein Gästebuch zu kommen, klappt es nicht. Wenn ich auf den Link klicke und die Skriptdateiendung ist .pl, bietet er mir den Download des Files an, oder ich kann ihn direkt öffnen. Wenn ich auf "öffne" klicke, öffne springt er allerdings in ein Dos-Fenster und führt das Skript von dort aus. Ist natürlich nicht Sinn der Sache. Wenn ich die Dateiendung ändere nach .plx oder .cgi, zeigt er mir im Browser den normalen ASCII Quelltext des Skriptes an. Falls es etwas damit zu tun haben könnte, ich benutze als Web Server den Apache.

Danke, vielleicht kann mir ja jemand helfen
Martin

  1. Hallo Perler,

    ich habe nochmal ein Problem. Ich bin mit einem Gästebuch-Perl-Skript fertig und es klappt auch, wenn ich die Adresse ("Pfad/guestbook.pl") direkt in den Browser gebe. Wenn ich allerdings versuche, von einer normalen HTML-Seite durch einen Link in mein Gästebuch zu kommen, klappt es nicht. Wenn ich auf den Link klicke und die Skriptdateiendung ist .pl, bietet er mir den Download des Files an, oder ich kann ihn direkt öffnen. Wenn ich auf "öffne" klicke, öffne springt er allerdings in ein Dos-Fenster und führt das Skript von dort aus. Ist natürlich nicht Sinn der Sache. Wenn ich die Dateiendung ändere nach .plx oder .cgi, zeigt er mir im Browser den normalen ASCII Quelltext des Skriptes an. Falls es etwas damit zu tun haben könnte, ich benutze als Web Server den Apache.

    Danke, vielleicht kann mir ja jemand helfen
    Martin

    Hi!!
    Probiers mal mit dem Link: "/cgi-bin/guestbook.pl".
    Der erste Slash ist wichtig!1 Sonst kann es passieren, daß der Server die URL nicht als CGI Verzeichnis akzeptiert!!!

    1. Hi,

      Probiers mal mit dem Link: "/cgi-bin/guestbook.pl".
      Der erste Slash ist wichtig!1 Sonst kann es passieren, daß der Server die URL nicht als CGI Verzeichnis akzeptiert!!!

      Sorry, aber das ist fachlich nicht besonders fundiert.

      Auf jeden Fall muß der *richtige* Pfad angegeben werden und nicht irgendeiner (sonst Error 404).

      Aber andererseits muß die Webserver-Konfiguration für diesen Pfad eben auch die Ausführung als CGI-Anwendung definiert haben und nichts anderes.

      Ansonsten siehe http://www.teamone.de/selfaktuell/artikel/schroepl03.htm#a6.

      mfG - Michael

      1. Hi,

        Probiers mal mit dem Link: "/cgi-bin/guestbook.pl".
        Der erste Slash ist wichtig!1 Sonst kann es passieren, daß der Server die URL nicht als CGI Verzeichnis akzeptiert!!!

        Sorry, aber das ist fachlich nicht besonders fundiert.

        Auf jeden Fall muß der *richtige* Pfad angegeben werden und nicht irgendeiner (sonst Error 404).

        Aber andererseits muß die Webserver-Konfiguration für diesen Pfad eben auch die Ausführung als CGI-Anwendung definiert haben und nichts anderes.

        Ansonsten siehe http://www.teamone.de/selfaktuell/artikel/schroepl03.htm#a6.

        mfG - Michael

        Danke für Eure Hilfe, hab noch nicht viel Erfahrung mit tiefergehender Webprogrammierung, aber ist immer schön, wenn auch solchen Einsteigern wie mir von mehr oder weniger Profis geholfen wird. Jetzt muss ich es nur noch kompatibel machen mit meinem Provider. Bei mir lokal auf dem Apache läuft es jedenfalls einwandfrei!!!

        Martin

      2. Hi,

        Probiers mal mit dem Link: "/cgi-bin/guestbook.pl".
        Der erste Slash ist wichtig!1 Sonst kann es passieren, daß der Server die URL nicht als CGI Verzeichnis akzeptiert!!!

        Sorry, aber das ist fachlich nicht besonders fundiert.

        Auf jeden Fall muß der *richtige* Pfad angegeben werden und nicht irgendeiner (sonst Error 404).

        Aber andererseits muß die Webserver-Konfiguration für diesen Pfad eben auch die Ausführung als CGI-Anwendung definiert haben und nichts anderes.

        Ansonsten siehe http://www.teamone.de/selfaktuell/artikel/schroepl03.htm#a6.

        mfG - Michael

        Ja, Du hast Recht. Ich habe mich in der eile zu knapp ausgedrückt.
        Natürlich muß der im Webserver festgelegt Pfad angegeben werden.
        Meine Erfahrung beruht auf OmniHTTPd, dort hatte ich am Anfang das selbe Problem.
        Bei mir war das Verzeichenis "cgi-bin" meine Verlinkung auf "cgi-bin/counter.pl" schlug fehl, obwohl es ein Unterverzeichnis ist.
        Ich mußte einen Slash davorsetzen, damit der Server den Pfad "anerkennt", also "/cgi-bin/counter.pl". Natürlich müssen der Pfad und die Dateinamen auf das aktuelle Problem angebpaßt werden.

        MfG
        Richie

        1. Hi,

          Bei mir war das Verzeichenis "cgi-bin" meine Verlinkung auf "cgi-bin/counter.pl" schlug fehl, obwohl es ein Unterverzeichnis ist.
          Ich mußte einen Slash davorsetzen, damit der Server den Pfad "anerkennt", also "/cgi-bin/counter.pl".

          Du hast Dein eigenes Problem nicht verstanden. ;-)

          Nicht *obwohl* es ein Unterverzeichnis "cgi-bin" gab,
          sondern *weil* es ein Unterverzeichnis "cgi-bin" gab
          (welches aber nicht identisch mit /cgi-bin und zudem
          nicht als CGI-Verzeichnis konfiguriert war) funktionierte
          es nicht. Zwar konnte der Link umgesetzt werden, d. h.
          der Webserver fand Deine Datei, aber niemand hatte ihm
          gesagt, daß er sie als CGI-Anwendung behandeln sollte.

          Es hätte funktioniert, wenn Du die Webserver-Konfigurarion
          so geändert hättest, daß entweder Dein lokales cgi-bin
          ebenfalls als CGI-Verzeichnis definiert gewesen wäre
          oder in Deinem (bzw. allen) Verzeichnissen Dateien mit
          entsprechenden Endungen als CGI-Anwendungen interpretiert
          werden sollen.

          Das alles (und noch viel mehr) steht auch in
          http://www.teamone.de/selfaktuell/artikel/schroepl03.htm#a6.

          mfG - Michael