PHP $_POST-Variablen sind manchmal leer

Ich bin ein PHP-Neuling und ich habe ein problem mit POST-Variablen, die einen manchmal leer, wenn ich zu senden. Das Teil, das macht das schwierig für mich, herauszufinden, ist, dass dies nicht passiert jedes mal, und ich kann in der Regel erhalten die post-Daten in mein PHP-Programm, indem Sie einfach die Aktualisierung der Seite. Manchmal dauert es ein paar mal, aber wenn die Daten gekommen ist, einmal durch, es kommen weiterhin gut durch.

Anderen PHP-Applikationen (WordPress und andere) funktionieren gut und geben nie Fehler, also ich bin ziemlich sicher, dass es ein problem mit meinem php-app.

Habe ich PHP 4.2.9 Installation auf einem CentOS 5.2 server, und KeepAliveTimeout auf 1 gesetzt.

Den code für die app, in der ich mit den übermittelten Daten:

<?php
    session_start(); 
    if (isset($_SESSION['username'])) {
        $expire = time() + (60*60*24*30);
        setcookie("username", $_SESSION['username'], $expire);
    }

    header("Cache-control: no-cache");

    if (!isset($_SESSION['username'])) {
        header('Location: ./login.php');
        die();
    }

    if(empty($_SERVER['CONTENT_TYPE'])){
        $type = "application/x-www-form-urlencoded";
        $_SERVER['CONTENT_TYPE'] = $type;
    }

    var_dump($_POST);
    echo "\n";
    var_dump($_SERVER);
?>

Jede Hilfe würde geschätzt

Edit: ich habe festgestellt, ein Unterschied zwischen der Arbeit von post-requests und diejenigen, die scheitern. Firebug sagt mir, dass, wenn der post fehlschlägt, wird der status ist eine 302-Umleitung statt der 200 ok.
Im nicht wirklich sicher, was verursachen kann, aber ich habe die header cache-control senden Formular nur, wie es in dem obigen code-snippet.

Irgendwelche Ideen?

  • Wie wirkt die form so Aussehen, wie Sie Buchen mit?
  • Passiert das in allen Browsern?
  • Sie könnte auch überprüfen Sie die $_REQUEST Variablen, die hält Töpfe und abrufen von Daten
  • Pekka - Es passiert mit allen Formen, und ich habe Sie viele Male. Ich glaube nicht, dass Sie im Unrecht sind hier. DisgruntledGoat - ich verwende FireFox, aber es passiert auch mit IE und Chrome. Nicky De Maeyer - ich habe versucht, mit der REQUEST-variable mit dem gleichen Ergebnis.
  • Irgendeiner Weise können wir sehen, die form, die Sie zu tun? Ein zweites paar Augen auf, es kann helfen.
  • Gonzofish - ich würde ein Formular anzeigen, aber ich glaube nicht, dass es wichtig sein würde. Ich habe versucht, ganz wenige Formen, keine Arbeit, wenn Sie den obigen code.
  • Update: ich habe festgestellt, dass einige andere Leute auf dem Netz haben, hatten ähnliche Probleme wie ich hatte, wo eine 302-Umleitung bewirkt, dass der browser für die Ausführung eines GET anstatt POST. Eine Antwort war, dass die post_max_size eingestellt war, 10MB, mit B anstelle von nur 10M. Der andere chap hatte das problem, wenn der Content-Type war leer oder ungültig. Beides nicht mein problem, aber hoffentlich ist jemand schlauer als ich kann man eine Ahnung davon, und mir sagen, wohin ich gehe falsch gemacht?

InformationsquelleAutor Marc | 2009-12-04
Schreibe einen Kommentar