Kai345: $_POST wird während des Scripts geleert

Beitrag lesen

[latex]Mae  govannen![/latex]

Ich wollte heute mein Kontaktformular mit verschiedenen Browsereinstellungen testen. Dabei habe ich auch versucht, mit deaktivierten Cookies zu testen (kann ja immer sein, daß jemand keine Cookies annehmen lässt, ich setze übrigens nur ein Session-Cookie).

Jedenfalls funktionierte das Formular nicht, mit gezielten Variablenausgaben habe ich dann schnell feststellen können, daß das $_POST-Array völlig leer bleibt. Weiterer Tests ergaben, daß $_POST gar nicht bis zur eingebundenen Ressource durchgereicht wird, sondern bereits im Hauptscript[1] verloren geht, ich konnte durch Versuche die Stelle bis auf eine Zeile eingrenzen:

kdump($_POST); // Testausgabe: Hier ist $_POST noch befüllt [2]  
  $co = kn::get_include_str($content);  
kdump($_POST); // Testausgabe: Hier ist $_POST leer
~~~ [3]  
  
Die aufgerufene Funktion ist eigentlich auch völlig unscheinbar:  
  
~~~php
public static function get_include_str($filename) {  
  if (file_exists($filename)) {  
    ob_start();  
    include $filename;  
    return ob_get_clean();  
  }  
  return false;  
} 

Wenn ich Cookies aktiviere, klappt's auch mit dem Nachb.. sorry, dem $_POST-Array.

Aber weshalb habe ich nach einem einfachen gepufferten include das $_POST-Array verloren, insbesondere nur, wenn ich Cookies abschalte? Wenn $_POST gelöscht wird, kann das Formular natürlich nie abgeschickt werden, nicht sehr benutzerfreundlich.

Ich habe es lokal und auf meinem Webspace jeweils mit FF3 und Opera getestet, daher dürften Browser und lokale PHP-Konfiguration keinen Einfluss haben.

[1] Vereinfachtes Grundkonzept ist folgendes:

  • Alle Requests laufen über ein "Haupt-Script"
  • Dort eine requestabhängige $_GET-Variable auslesen
  • In einem Array nachschauen, ob ein gleichnamiger Key existiert
  • Falls ja: Aus dem Array den Pfad der einzulesende Ressource auslesen
        (das ist dann der Wert der oben verwendete Variable $content)
  • Ressource per include einbinden und Ausgabe abfangen und in Zeichenkette wandeln (Funktion oben)
  • Spezifische Ersetzungen vornehmen
  • Ausgabe

[2]
array(12) {
...
}

[3]
array(0) {
}

Cü,

Kai

P.S: Die Ersetzungs-Vorschläge der Software für das Wort Webspace => Weißkäse, Verspaße und Fehlpässe, finde ich irgendwie *g*

--
„It's 106 miles to Chicago, we got a full tank of gas, half a pack of cigarettes, it's dark, and we're wearing sunglasses“.
„Hit it!“
Selfzeugs
SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?