Steffi: Mit Latein am Ende

Moin,

langsam werde ich hier stocksauer. Habe ein mailer.pl und der Käse funkzt nicht. Kann mir da vielleicht jemand helfen ?
Wenn ich das Formular abschicke, kommt immer

Method Not Allowed
The requested method POST is not allowed for the URL /FormMail.pl.

Egal mit welchem Teil ich das versuche.

Ich lade den pl in ASCII habe auch den chmod richtig gesetzt, aber nix ist.

Das Formular ist unter www.hundehalter.de/anmeldungst.html
Der mailer unter www.hundehalter.de/mailer.pl

Das zweist ist unter www.hundehalter.de/form.htm und www.hundehalter.de/FormMail.pl

Wäre lieb wenn hier jemand etwas weiß, bin schon etwas sehr genervt.

Ach ja was mien Provider dazu schreibt:

Selbst geschriebene CGI-Skripte können nur im Premium und Powertarif verwendet werden.

Bitte überprüfen Sie, daß Sie Ihr Skript per ASCII-Upload übertragen haben,
und daß Sie die Rechte für das Skript auf
User:read, write, execute Group:read, execute Others/World:read, execute
gesetzt haben (755).
Folgende Pfade sind ebenfalls zu überprüfen:
Document Root: $ENV{DOCUMENT_ROOT}
Skriptendung : .pl
Perl5.004 : /usr/bin/perl
sendmail : /usr/sbin/sendmail
date : /bin/date
Bitte haben Sie Verständnis, daß wir keine selber geschriebenen Skripte
supporten können.

Liebe Grüße aus Mainz

Steffi

  1. Hallo Steffi

    Wenn ich das Formular abschicke, kommt immer
    Method Not Allowed
    The requested method POST is not allowed for the URL /FormMail.pl.

    Hab mir das Script mal angesehen, konnte aber keine Fehler auf den ersten Blick erkennen. Was mich allerdings wundert, ist der Ablageort des Scripts:
    www.hundehalter.de/mailer.pl

    Normalerweise musst du solche Scripts im definierten CGI-Verzeichnis ablegen, es sei denn, dein Provider hat es so eingerichtet, dass Scripts uberall ausfuehrbar sind. Oder hast du das Script nur mal dort abgelegt, damit man es downloaden und sehen kann, um Fehler darin zu finden?

    Und wenn's gar nix hilft, hier noch mal ein anderes FormMail-Script:

    Teil 1 (HTML):

    <form action="http://deinserver/cgi-bin/mailscript.pl" method="post">
    <input type="hidden" name="mailto" value="DeinName@deinProvider.xy">
    <input type="hidden" name="return" value="http://www.xy.de/danke.html">
    <input type="hidden" name="delimiter" value=": ">
    <input type="hidden" name="subject" value="Feedback-Formular">
    <!-- hier beliebige eigene Felder -->
    <input type="submit"><input type="reset">
    </form>

    Teil 2 (Script):

    #!/usr/bin/perl

    -------> SMTP-Programm zum Versenden der Mail:

    $Sendmail_Prog = "/usr/lib/sendmail";

    -------> Modul für CGI-Scripts einbinden:

    use CGI;

    -------> Modul für CGI-Scripts zum Einlesen der Formulardaten anwenden:

    $query = new CGI;
    @names = $query->param;

    -------> interne Daten aus den erwarteten hidden-Feldern auslesen:

    $delimiter = $query->param('delimiter');  # ---> Begrenzerzeichen zwischen name und value
    $mailto = $query->param('mailto');        # ---> Empfängeradresse
    $returnhtml = $query->param('return');    # ---> URL für Dankeseite
    $subject = $query->param('subject');      # ---> E-Mail-Subject

    -------> HTTP-Ausgabe schon mal vorbereiten:

    print "Content-type: text/html\n\n";

    -------> Text der E-Mail aus den Formulardaten ermitteln:

    $mailtext = "";
    foreach(@names) {
      $name = $_;
      @values = "";
      @values = $query->param($name);
      if($name ne "mailto" && $name ne "return" && $name ne "subject" && $name ne "delimiter") {
        foreach $value (@values) {
          $mailtext = $mailtext.$name;
          $mailtext = $mailtext.$delimiter;
          $mailtext = $mailtext.$value."\n";
        }
      }
    }

    -------> E-Mail versenden:

    open(MAIL,"$Sendmail_Prog -t") print "Mailprogramm konnte nicht gestartet werden\n";

    print "To: $mailto\n";

    print MAIL "To: $mailto\n";

    print "Subject: $subject\n\n";

    print MAIL "Subject: $subject\n\n";
    print MAIL "$mailtext\n";

    print "$mailtext\n</pre>";

    exit(1);

    close(MAIL);

    -------> Dankeseite an Browser senden:

    print "Location: $returnhtml\n\n";
    exit(1);

  2. Selbst geschriebene CGI-Skripte können nur im Premium und Powertarif verwendet werden.

    Und? Hast Du einen solchen Vertrag mit Deinem Provider?
    Und wenn ja, für welche Verzeichnisse hat er Dir das CGI-Recht freigeschaltet?

    Ansonsten könnte noch "POST" in der Webserver-Konfiguration verboten sein - hast Du mal "GET" versucht?

    (Stefan, der fehlende Umbruch im Posting-Formular ist zum K...inderkriegen. ;-)

    1. Hi Michael!

      (Stefan, der fehlende Umbruch im Posting-Formular ist zum K...inderkriegen. ;-)

      Und seien wir doch mal ehrlich... Du willst doch gar nicht (selber) Kinder kriegen, ne? ;-)

      Bye, Roland