Moeren: $_POST nach redirect ?

Hallo Leute,

kurze frage, ist es möglich nach dem man per error404 redirected wurde an die POST Daten ranzukommen ? An die GET daten komm ich ja über den $_SERVER['REDIRECT_QUERY_STRING'] aber hab nix gefunden um die POST-Daten zu bekommen..

schonmal danke für jede Hilfe.

  1. echo $begrüßung;

    kurze frage, ist es möglich nach dem man per error404 redirected wurde an die POST Daten ranzukommen ?

    Man wird bei einem 404er nicht einfach so redirectet. Wenn du die POST-Daten nicht direkt im Request entgegennimmst, dann hast du schlechte Karten.

    echo "$verabschiedung $name";

    1. Hello,

      Man wird bei einem 404er nicht einfach so redirectet. Wenn du die POST-Daten nicht direkt im Request entgegennimmst, dann hast du schlechte Karten.

      Es ist eine serverinterne Umleitung, wie bei Mod_Rewrite
      Trotzdem dürften die Request-Daten nicht verloren gehen.

      Ich habe das aber noch nicht ausprobiert, werde es aber gleich mal machen :-)

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Naja genau darum ging es ja. Ich habe nen PHP dokument bestimmt für den e404. Dieser nimmt die $_SERVER['REDIRECT_URL'] um das gesuchte zu bestimmen, schaut dann in die verzeichnisse und db und gibt die Ergebnisse aus was dazu gefunden wurde. Gibt es ne Datei die direkt so heißt wird diese eingebunden und ausgeführt.

        So das ich für mein GB zum beispiel statt www.asd.de/?site=gb nur noch www.asd.de/gb eingebe.

        Aber wenn nun jemmand ins gb posten will und das per POST geht, stehen weder $_POST noch $_REQUEST des ursprügnlich aufgerufenen Dokument zu verfügung (vielleicht doch, weiß aber net wo, hab komplett $GLOBALS danach durchsucht).
        And die GET daten komm ich leicht per:
         parse_str($_SERVER['REDIRECT_QUERY_STRING'],$_GET);
        aber an die POST halt nicht.

        Momentan habe ich es so gelöst das man sobald man www.asd.de/gb aufruft sofort an www.asd.de/?site=gb weitergeleitet wird.. wenn man von da aus weitermacht wie früher geht ja alles... aber es wäre halt schön wenn ich nur noch über die platzhalter arbeiten könnte, aber manchmal braucht man halt POST ;)

        1. Hello,

          http://bugs.php.net/bug.php?id=25426

          ganz unten:
             [8 Sep 2003 6:58am UTC] sniper@php.net
             Apparently Apache does not redirect the post data -> not PHP bug.

          Aber ich weiß, dass ich das als eine meiner letzten Übungen im Januar hingebastelt hatte, dass man ein "ErrorDocument" _mit_ den gesamten Header-Daten und dem Post-Body zur Verfügung hatte. Das ging mMn mit einem der zusätzlichen Modul. Kann sein, dass es Module Header war. Und die SSI-Verarbeitung musste aktiv sein (?).

          Ich habe dann leider nicht weiter (mit PHP) damit herumbasteln können, wollte ich aber immer mal.
          Thema war ja "Dienste auf einem Linux-Host" und nicht PHP.

          Aber wenn man den gesamten Request zur Verfügung hat, müsste man sich aus den RAW_POST_DATA usw. das Zeug selber parsen können, was man braucht.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. Aber wenn man den gesamten Request zur Verfügung hat, müsste man sich aus den RAW_POST_DATA usw. das Zeug selber parsen können, was man braucht.

            hmm da spuckt er mir nix aus, hab gelesen das man in der php.ini always_populate_raw_post_data einschalten muss um an $HTTP_RAW_POST_DATA ranzukommen.. nun wäre das aber schlecht da die scripte auch auf servern funktionieren sollen die ich nicht administriere

            1. Hello,

              hmm da spuckt er mir nix aus, hab gelesen das man in der php.ini always_populate_raw_post_data einschalten muss um an $HTTP_RAW_POST_DATA ranzukommen.. nun wäre das aber schlecht da die scripte auch auf servern funktionieren sollen die ich nicht administriere

              Das Problem steckt auch im Apachen. Eigentlich muss man sagen, dass die mitr der Abschaltung der Header- und Body-Daten bei der Weiterleitung an ein ErrorDocument eine potentielle Sicherheitslücke schließen wollten.

              Wenn die nun wieder zulässt, dass Post-Data an ein nicht vorhandenes Dokument gesendet werden können, reißt Du da ggf. eine Lücke auf, die den Server angreifbar macht. Die Daten werden als Environment zum Script bereitgestellt und gammeln dann irgendwie im Speicher rum. Es könnte ja auch ein Upload enthalten sein, also viel Platz für Unsinn.

              siehe hierzu aber auch:
              http://www.brainonfire.net/blog/apache-pitfall-errordocument-post/

              Wir haben das aber noch ganz anders gemacht. Ich grübele schon die ganze Zeit, wie denn. Ich wollte es sowieso noch zuende bespielen :-)

              Im Prinzip ist mir dabei damals klar geworden, dass der Apache schon viele Dinge enthält, die man sonst mit PHP erst wieder emulieren muss. Man muss die Klamotten nur einschalten und PHP hat nur noch die Hälfte zu tun.

              Liebe Grüße aus dem schönen Oberharz

              Tom vom Berg

              --
              Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
              1. Wenn beim spielen was bei rauskommmt sag bescheid, bin sehr an dem ergebnis interessiert...

                Jetzt mal vom Sicherheitsaspekt abgesehen ist es schon Schade das man die daten net bekommt...

                1. Hello,

                  Jetzt mal vom Sicherheitsaspekt abgesehen ist es schon Schade das man die daten net bekommt...

                  per Mod_Rewrite würde es einwandfrei funktionieren.
                  Da musst Du nur die Rewrite-Conditions entsprechend wählen:

                  http://www.webmasterworld.com/forum92/5222.htm

                  Liebe Grüße aus dem schönen Oberharz

                  Tom vom Berg

                  --
                  Nur selber lernen macht schlau
                  http://bergpost.annerschbarrich.de
                  1. Ja sry, hatte erst geantwortet und erst dann dein Link gelesen :D

                    auf jeden Fall danke, jetzt funzt es wie es soll.

                    1. Hello,

                      Ja sry, hatte erst geantwortet und erst dann dein Link gelesen :D

                      auf jeden Fall danke, jetzt funzt es wie es soll.

                      Und wie hast Due es jetzt gelöst?
                      Vielleicht hier nochmal eine kurze Beschreibung für die Nachwelt?

                      Liebe Grüße aus dem schönen Oberharz

                      Tom vom Berg

                      --
                      Nur selber lernen macht schlau
                      http://bergpost.annerschbarrich.de
                      1. Naja ich habs erstmal einfach nur getestet gehabt..
                        also die htaccess mit

                          
                        RewriteEngine On  
                        RewriteBase /  
                          
                        DirectoryIndex index.php  
                          
                        RewriteCond %{REQUEST_FILENAME} !-f  
                        RewriteCond %{REQUEST_FILENAME} !-d  
                        RewriteRule . /work/cms/index.php [L]  
                        
                        

                        Und schon hab ich alle $_REQUEST daten in der index gehabt...
                        weiter verwenden konnte ich es aufgrund von Zeitmangel nicht, da andere bestandteile halt wichtiger waren...

  2. Hello,

    beim Apachen ist die Errorseite ein HTML-Dokument, das mittels SSI zusammengeklebt wird
    Damit kann man allerhand Sinniges und Unsinniges anstellen.

    Man kann aber auch eigene Error-Seiten definieren.

    http://httpd.apache.org/docs/2.2/mod/core.html#errordocument

    Und somit könntest Du auch ein PHP-Script als Error-Document festlegen.
    Suchtest Du diese Möglichkeit?

    Wie es bei anderen Webservern läuft, weiß ich leider nicht.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Moin!

      beim Apachen ist die Errorseite ein HTML-Dokument, das mittels SSI zusammengeklebt wird

      Nö, eigentlich erstmal nicht.

      Damit kann man allerhand Sinniges und Unsinniges anstellen.

      Mit SSI natürlich, wenngleich dessen Möglichkeiten natürlich begrenzt sind im Vergleich zu umfangreicheren Skriptsprachen.

      Man kann aber auch eigene Error-Seiten definieren.

      http://httpd.apache.org/docs/2.2/mod/core.html#errordocument

      Und somit könntest Du auch ein PHP-Script als Error-Document festlegen.
      Suchtest Du diese Möglichkeit?

      Wie es bei anderen Webservern läuft, weiß ich leider nicht.

      Im Prinzip ähnlich: Für jeden HTTP-Statuscode kann man eine eigene Seite definieren, bzw. ein Skript. Es wird nur meist nicht über so eine banale Konfigurationsdatei funktionieren, sondern etwas grafischer - zumindest wenn man den IIS im Blick hat.

      - Sven Rautenberg