Ed X: "Method Post not allowed" - aber nicht immer

Hi,

Ich bin mit einem Projekt auf einen anderen Server gezogen. Selbiger
(neuer Server) mag meine Scripts nicht. Ich habe statische HTML-seiten
mit Post-Formularen, die das Forum realisieren. Das funktioniert auch
bestens. Und ich habe seiten die aus Perlscripten heraus entstehen. Auch
in diesen gibt es Post-Formulare(um Adresseneinträge zu ändern etc.).
Wenn ich diese absende bekomme ich die Server-Fehlermeldung "Method post
is not allowed for (aufgerufenes script)".
Die Scripts für das Forum und die Adressenänderung liegen im selben Ver-
zeichnis und haben die selben Rechte(755). Meine Vermutung ist nun, dass
es daran liegt, dass die eine (aufrufende) Seite statisch ist und die
andere dynamisch erzeugt wird. Ich denke es müsste ein Eintrag in der http.conf sein, aber ich weis nicht welcher. Gibt es noch eine andere
Lösung?(ich bin nicht der Herr über den betreffenden Server)

bye eddie

  1. Moin!

    Und ich habe seiten die aus Perlscripten heraus entstehen.

    "die aus Perlscripten heraus entstehen"? Was soll das heissen? Wird direkt an diese Perlscript gePOSTet, oder werden diese per SSI eingebunden (geht das ueberhaupt?), oder wie?

    Die Scripts für das Forum und die Adressenänderung liegen im selben Verzeichnis

    Die Scripts fuer die Adressenaenderung? Irgendwie habe ich ziemliche Verstaendnisschwierigkeiten bei diesem Posting.

    Also sag mal im Klartext, welche statischen Dateien und welche Scripte hast Du wo liegen, wer ruft wen auf oder wer bindet wen ein? Was wurde Dir vom Provider bzgl. CGI-Scripts gesagt, also wo koennen welche ausgefuehrt werden? Und: Wird .htaccess unterstuetzt (Ja/Nein/teilweise (falls letzteres, zu *welchem* Teil))?

    So long

    --
    Alle Verallgemeinerungen sind falsch.

    1. Hi Calocybe,

      "die aus Perlscripten heraus entstehen"? Was soll das heissen? Wird direkt an diese Perlscript gePOSTet, oder werden diese per SSI eingebunden (geht das ueberhaupt?), oder wie?

      Ein Perl-script liest eine Vorlage ein (ich habe sie *.tmpl
      genannt) und eine *.csv-Datei. Die aus der csv-Datei geparsten Daten
      werden in der Vorlage eingesetzt per =~ s/// . Dadurch lese ich die
      Adressen ein und gebe ein Formular zur Änderung mit aus. Wenn ich
      jetzt Adressen ändere, wird dieser Datensatz mit method=post gesendet.

      Die Scripts fuer die Adressenaenderung?

      Siehe oben

      Also sag mal im Klartext, welche statischen Dateien und welche Scripte hast Du wo liegen, wer ruft wen auf oder wer bindet wen ein?

      innerhalb cgi-bin:
      -adressen.tmpl   ---> Vorlage für Adressenänderung (hauptsächlich html-code)
      -adressen.csv    ---> enthält die Adressen
      -adrbuilder.pl   ---> liest .tmpl und .csv, ersetzt bestimmte Stellen in .tmpl und gibt alles aus
      -adrsaver.pl     ---> nimmt Daten aus dem Form der von adrbuilder.pl generierten Ausgabe entgegen und schreibt adressen.csv neu
      -forumneu.pl     ---> erstellt neue htmldatei für neuen thread
      -forumsaver.pl   ---> hängt neues Posting an bestehenden thread

      innerhalb des eigentliche Webverzeichnisses:
      /forum
          main.html    ---> übersicht der threads und Form für neue Vorlage
          /data
              t1.html  ---> Eigentlicher thread mit Form um Posting anzuhängen

      Was wurde Dir vom Provider bzgl. CGI-Scripts gesagt, also wo koennen welche ausgefuehrt werden? Und: Wird .htaccess unterstuetzt (Ja/Nein/teilweise (falls letzteres, zu *welchem* Teil))?

      Das ganze ist ein Uniprojekt also mit dem "Provider" kann man reden.
      .htacess ist machbar. Über die Konfiguration des cgi-bin muss ich
      sowieso nochmal mit dem Chef vom Rechezenrum reden. Zur Zeit kann ich
      bei direktem Aufruf die *.pl dateien runterladen, kann mir auch das Verzeichnis listen lassen etc. was so natürlich nicht geht.

      Danke für die Hilfe und ich hoffe das ist klarer.

      bye eddie

      1. Re!

        Ein Perl-script liest eine Vorlage ein (ich habe sie *.tmpl
        genannt) und eine *.csv-Datei. Die aus der csv-Datei geparsten Daten
        werden in der Vorlage eingesetzt per =~ s/// . Dadurch lese ich die
        Adressen ein und gebe ein Formular zur Änderung mit aus. Wenn ich
        jetzt Adressen ändere, wird dieser Datensatz mit method=post gesendet.

        Alles klar, also ein ganz normales CGI-Script, dass direkt aufgerufen wird und auf irgendeine Weise eine HTML-Ausgabe macht.

        Das ganze ist ein Uniprojekt also mit dem "Provider" kann man reden.
        .htacess ist machbar. Über die Konfiguration des cgi-bin muss ich
        sowieso nochmal mit dem Chef vom Rechezenrum reden. Zur Zeit kann ich
        bei direktem Aufruf die *.pl dateien runterladen, kann mir auch das Verzeichnis listen lassen etc. was so natürlich nicht geht.

        Runterladen, also den *Sourcecode*, nicht etwa die generierte Ausgabe? Dann ist der Fall klar. Dein cgi-bin ist keins. Der Cheffe muss das cgi-bin mit der ScriptAlias-Direktive zum CGI-Verzeichnis machen (geht nur in der httpd.conf, nicht in .htaccess). Einstweilen kannst Du Dir evtl. folgendermassen behelfen (ungetestet, und .htaccess muss diese Direktiven erlauben!): .htaccess in das cgi-bin mit der Zeile
          AddHandler cgi-script .pl
          Options -Indexes

        Die erste Zeile bezeichnet .pl-Dateien als CGI-Scripts (sowas funktioniert auch in anderen, ganz normalen Verzeichnissen). Die zweite verweigert die Erlaubnis, den Verzeichnisinhalt auflisten zu duerfen.

        Der Fehler "Post is not allowed" kommt uebrigens, weil Deine Dateien wie jede andere statische Seite behandelt werden. Die kann man zwar runterladen, aber ein POST darauf macht keinen Sinn.

        So long

        --
        Alle Verallgemeinerungen sind falsch.

        1. Hi,

          Danke erstmal für die  Ausführungen.

          Der Cheffe muss das cgi-bin mit der ScriptAlias-Direktive zum CGI-Verzeichnis machen (geht nur in der httpd.conf, nicht in .htaccess).

          Jepp, morgen steh' ich auf der Matte.... ;-)

          AddHandler cgi-script .pl

          Nun bekomme ich statt "Method not allowed" die "offizielle" Uni-403 Seite :-\

          Options -Indexes

          damit wäre das Problem erledigt

          Der Fehler "Post is not allowed" kommt uebrigens, weil Deine Dateien wie jede andere statische Seite behandelt werden. Die kann man zwar runterladen, aber ein POST darauf macht keinen Sinn.

          Hm, warum aber funktioniert dann das Forum? Ich bin mir noch nicht so
          sicher, ob ich damit nicht schon auf dem Weg zum Paranormalen bin... ;-)

          bye eddie

          1. Re there!

            AddHandler cgi-script .pl
            Nun bekomme ich statt "Method not allowed" die "offizielle" Uni-403 Seite :-\

            Mmh, dass die Rechte stimmen, hattest Du ja schon geschrieben. *raetsel* Falls Du Zugriff auf das error log hast, kannst Du ja mal schauen, ob Du irgendwas findest, was auf das Problem hindeutet.

            Der Fehler "Post is not allowed" kommt uebrigens, weil Deine Dateien wie jede andere statische Seite behandelt werden. Die kann man zwar runterladen, aber ein POST darauf macht keinen Sinn.
            Hm, warum aber funktioniert dann das Forum?

            Ach so, verdammt, das hab ich ganz uebersehen. Das Forum funktioniert ja. Dann duerfte meine vorherige Diagnose ziemlich falsch gewesen sein. Mir faellt aber auch nichts ein, was da noch sein koennte. Dass ein Script ausgefuehrt wird und das andere runtergeladen, die im selben (CGI-)Verzeichnis liegen, das ist schon wirklich komisch. Naja, mal schauen, was der Admin dazu sagt. (Nimm aber vorher besser wieder die AddHandler-Zeile aus der .htaccess raus.)

            So long

            --
            Wenn Wahlen etwas ändern könnten, würden sie sofort verboten werden.