mafoe: cgi und script zum befüllen

Hallo habe jetzt folgendes script erstellt:

http://www.wallwitzburg.de/mitglied_formular.txt
(hat normalerweise die endung htm)

das greift auf das selfmail.pt im cgi verzeichnis zu.

Wenn ich erste  formular jetzt ausfülle und abshcicke kommt interner server fehler 500.

Worin liegt jetzt der fehler?

im .htm im .pt oder an einer servereinstellung?

lg

mafoe

  1. überschrift muss wohl heißen htm befüllt perl oder so *G

  2. Hallo mafoe,

    im .htm im .pt oder an einer servereinstellung?

    Du meinst wahrscheinlich die Dateiendung .pl, die Du auch verwendet hast, sonst hättest Du eine andere Fehlermeldung bekommen.

    Bei den meisten Server-Konfigurationen musst Du die Dateieigenschaften der Perl-Skripte noch so einstellen, dass diese vom Webserver ausgeführt werden dürfen (chmod 0755). Dies kannst Du normalerweise direkt aus deinem FTP-Programm machen.

    Herzliche Grüße aus Weinsberg
    Helmut Weber

    --
    -------------------------------------------
    Mode ist eine Variable, Stil eine Konstante
    1. hallo, habe dem script chmode 755 gegeben, trotzdem wills nicht so recht :(

      wo kannich mein script posten?

      lg

      1. Hallo mafoe,

        hallo, habe dem script chmode 755 gegeben, trotzdem wills nicht so recht :(

        Dann wirst Du detailiertere Angaben zur Fehlermeldung benötigen. Kommst Du evtl. an die Log-Files des Webservers heran? Ansonsten könnte Dir die Anweisung "use CGI::Carp qw( fatalsToBrowser );" weiter helfen. Füge diese Anweisung einfach vor "use CGI;" ein.

        wo kannich mein script posten?

        Wenn dein CGI-Skript selfmail.pl heißt, ist es dann zufällig dieser Form Mailer?

        Herzliche Grüße aus Weinsberg
        Helmut Weber

        --
        -------------------------------------------
        Mode ist eine Variable, Stil eine Konstante
        1. Moin.

          Dann wirst Du detailiertere Angaben zur Fehlermeldung benötigen. Kommst Du evtl. an die Log-Files des Webservers heran? Ansonsten könnte Dir die Anweisung "use CGI::Carp qw( fatalsToBrowser );" weiter helfen. Füge diese Anweisung einfach vor "use CGI;" ein.

          Das hilf aber nur, wenn es laufen würde, der Fehler also im Script steckt. Der Server liefert aber auch einen Error 500, wenn er das Script garnicht erst starten kann. Ist der falsche Übertragungsmodus schuld (liegt das Script im DOS-Format auf dem Server), stimmt der Pfad zum Perlinterpreter nicht oder sind die Rechte falsch gesetzt, bekommst Du auch mit dieser zusätzlichen Zeile keine Hilfe. Trotzdem sollte sie im Script vorhanden sein.

          wo kann ich mein script posten?

          Falls es nicht, wie Helmut schon vermutete, dieser Form Mailer ist, (auszugsweise, also die geänderten Teile) hier. Oder speichere es als Textfile (*.txt) in einem HTML-Verzeichnis auf Deinem Server und nenne uns die URL.

          Vielleicht probierst Du erstmal, ein ganz einfaches Script zum Laufen zu kriegen:

          #!/usr/bin/perl
          print "Content-type: text/plain\n\n";
          print "Hello World!";

          Achte auf den richtigen Pfad zum Interpreter, stelle die Rechte richtig und achte auf das richtige Fileformat. Wenn das läuft, kannst Du Dich an weitere Scripts wagen.

          Es gibt verschiedene Editoren, die bestens zum Editieren von Scripten und HTML geeignet sind. So z.B. Phase 5 und der passende FTP-Uploader oder der PSPad von Jan Fiala, der neben vielen nützlichen Funktionen wie HTML-Unterstützung, Syntax Highlighting, Makro-Aufzeichnung, Vergleichen von Dateien auch gleich einen eingebauten ftp-Client mitbringt.

          Wenn Du in Deinem ftp-Programm nicht sicherstellen kannst, daß Du die Script-Files im ASCII-Mode überträgst, dann kannst Du sie auch im BINARY-Mode übertragen, sie MÜSSEN dann aber auf Deinem Rechner bereits im UNIX-Format liegen.

          Ich kenne Dreamweaver nicht, es kann aber sein, daß damit Files immer im BINARY-Mode übertragen werden, das muß z.B. bei Bildern so sein.

          Gruß Frank

  3. Moin.

    Wenn ich erste  formular jetzt ausfülle und abshcicke kommt interner server fehler 500.

    Worin liegt jetzt der fehler?

    Das kann viele Gründe haben. Hast Du Dir mal den Artikel über Inbetriebnahme eines CGI-Scripts durchgelesen? Auch im Artikel CGI-Scripts auf öffentlichem Webserver installieren findest Du ein paar Tipps.

    Der häufigste Fehler ist aber wahrscheinlich der: Das Übertragen des Scripts im falchen Modus. UNIX (und ich gehe mal davon aus, daß der Webserver eine UNIX oder LINUX-Kiste ist) erwartet als Zeilenende ein 0x0a, DOS, also auch Windows, benutzt 0x0d 0x0a. Du solltest Dein Script also im UNIX-Format speichern, was jeder vernünftige (!) Editor kann. Normaler Weise sollte aber, wenn alle Programme mitspielen, beim ftp-Transfer im ASCII-Mode die Umwandlung vom DOS ins UNIX-Format automatisch erfolgen. Kontollier mal, welchen Modus Du beim ftp-Transfer benutzt hast.

    im .htm im .pt oder an einer servereinstellung?

    .pt? Eigentlich ist die Dateiendung egal, es kann aber sein, daß Dein Webserver .pt-Files garnicht ausführen will. Üblicher Weise heißen Perlscripts *.pl.

    Eine weitere Falle ist der Pfad zum Perlinterpreter - das was in der ersten Zeile des Scripts steht. Stimmt der? Diese Info bekommst Du von Deinem Webhoster.

    Gruß Frank

    1. »» vom DOS ins UNIX-Format automatisch erfolgen. Kontollier mal, »» welchen Modus Du beim ftp-Transfer benutzt hast.

      Also beim Dreamweaver kann ich da nirgens eine information finden wie ich das übertrage und ob er das umwandelt.

      lg und danke für die infos