Henk Strobel: POST-Variablen verschwunden

Hallo,

ich habe ein Problem mit der Übergabe von Variablen in PHP. Dieser Fehler taucht sporadisch auf, d.h. er ist nicht immer reproduzierbar.

Die aus einem Formular geposteten Daten kommen einfach nicht beim Skript an, das die Daten weiterverarbeiten soll. Wenn ich mir $_REQUEST ausgeben lasse, enthält der Array nur die Session-ID, die nicht durch das Formular versandt wurde.

Ich poste hier mal keinen Code, da der Fehler bei verschiedenen Formularen auftritt: Das eine Formular verwendet den FCK-Editor (http://www.fckeditor.net/), das andere regelt einen Fileupload. Möglicherweise taucht der Fehler auch bei anderen Formularen auf.

Ich bin mittlerweile soweit, das ich eine Fehlkonfiguration eines Proxies, Routers o.ä. im Netzwerk des Kunden im Verdacht habe. Ist so etwas denkbar? Hat jemand eine andere Idee?

Viele Grüße

Henk Strobel

  1. Hi Henk,

    was fehlt ganau wann und wie hast Du versucht es zu untersuchen?

    $_REQUEST ist überhaus ungeeignet zur Überfrüfung irgendwelcher Zusammenhänge, da in diesem Array die Parameter

    $_ENV
     $_GET
     $_POST
     $_COOKIE
     $_SERVER

    aufsummiert werden

    http://de3.php.net/manual/en/ini.core.php#ini.variables-order

    Fang mal hier
    http://de.php.net/manual/en/ini.core.php#ini.register-globals
    http://de3.php.net/en/language.variables.predefined

    an zu lesen

    LG
    Chris

  2. Hi Henk Strobel,

    Die aus einem Formular geposteten Daten kommen einfach nicht beim Skript an, das die Daten weiterverarbeiten soll. Wenn ich mir $_REQUEST ausgeben lasse, enthält der Array nur die Session-ID, die nicht durch das Formular versandt wurde.

    Probier es mal mit $_POST. Es gibt in der php.ini eine Direktive namens "variables_order":
    This directive describes the order in which PHP registers GET, POST, Cookie, Environment and Built-in variables (G, P, C, E & S respectively, often referred to as EGPCS or GPC).  Registration is done from left to right, newer values override older values.
    Wenn da kein P drin ist, werden POST-Variablen auch nicht unter $_REQUEST registriert.

    Ich bin mittlerweile soweit, das ich eine Fehlkonfiguration eines Proxies, Routers o.ä. im Netzwerk des Kunden im Verdacht habe. Ist so etwas denkbar? Hat jemand eine andere Idee?

    Das kannst du ausprobieren, indem du das Script lokal ausführst. Dann kann es ja nicht am Netzwerk des Kunden liegen.

    Vielleicht wird der Client zwischendrin weitergeleitet (z.B. mit Location:)? Dann gehen POSTs AFAIK meistens verloren.

    Gruß, Marian

    1. Hallo Marian,

      Probier es mal mit $_POST.

      $_POST existiert, ist aber leer...

      Das kannst du ausprobieren, indem du das Script lokal ausführst. Dann kann es ja nicht am Netzwerk des Kunden liegen.

      Ja, ich weiß. Bei mir tritt der Fehler auch nicht auf, bzw. bin ich nicht sicher, das die Leute beim Kunden nicht z.B. im Editor irgendetwas spezielles eingeben, das zu diesem Fehler führt. Werde dem in der nächsten Woche mal genauer auf den Grund gehen und mich vielleicht nochmal melden...

      Vielleicht wird der Client zwischendrin weitergeleitet (z.B. mit Location:)?

      Nein.

      Viele Grüße

      Henk Strobel