2009-07-29 11 views
0

Ich verwende Firefox 2.0.0.14.HTML-Formular funktioniert mit GET aber nicht mit POST

Ich habe ein Formular auf einer Webseite, die mit der GET-Methode funktioniert.

Ich bin mit einem Plugin meines Browsers HTTP-Anforderung anzuzeigen, wenn das Formular abschicken, und hier ist sie:

GET /postComment.php?review=2&comment=Testing HTTP/1.1 
... 

Wenn ich jedoch die einfache Änderung von Verfahren machen = GET zu method = POST auf das Formular:

GET /postComment.php HTTP/1.1 
... 

Es ist nicht einmal versucht, POST.

Mögliche Gründe dafür, unter keinen Umständen?

EDIT: Hier ist die Form:

<form method=POST action="postComment.php"><input type=hidden name=review value="2"><input type=submit value="Postit"> 
</form> 
+0

Welches Plugin benutzen Sie? Bist du sicher, dass es funktioniert? – ceejayoz

+0

Bitte senden Sie das entsprechende Snippet des HTML-Formulars Ihrer Formularseite, wenn Sie möchten, dass assitance die Richtigkeit überprüft. Danke - – markh

+0

"Live HTTP Headers" von der Startseite von Firefox Web Development Plugins. Ich bin mir ziemlich sicher, dass es funktioniert, weil die Empfangsseite keine POST-Variablen aufnimmt –

Antwort

0

Ist der Aktionsparameter des Formular-Tag eingestellt? Könnte Javascript den Beitrag abfangen? Etwas HTML von Ihrem Formular wäre hilfreich, oder ein Beispiel Link :)

+0

Es gibt keinerlei JS auf der Seite. –

+0

Könnten Sie das Tag

einfügen und verwenden Sie bitte? Versehen Sie versehentlich die Definition irgendwo? –

+0

Sicher, überprüfen die Frage bearbeiten –

0

Ich schätze, Ihr Plugin erfasst nicht die POST-Variablen. Da die Ausgabe Ihres Plugins ist:

GET /postComment.php HTTP/1.1 

Wie sind Sie CATPuring Ihre POST-Variablen? $ _POST ['key'] oder $ _REQUEST ['key'] sollten Ihren Wert enthalten, wenn die Formularaktion und die Methode richtig eingestellt sind.

POST wird in der Abfragezeichenfolge nicht gefunden.

EDIT: wenn Sie versuchen, den Postwert zu erfassen, können Sie es mit so etwas wie dies überprüfen:

if (isset($_REQUEST['submit'])) { 
    echo $_REQUEST['review']; 
} 

oder

if (isset($_POST['submit'])) { 
    echo $_POST['review']; 
} 

Acorn

+1

sollte ich sehen: POST /postComment.php HTTP/1.1 ... Content-Length: xxx [DER POST DATA] –

+0

Hinweis: I sehen Sie die richtige POST-Anfrage von anderen Formen mit dem Plugin –

+0

Ich überprüfe den POST-Wert wie folgt - isett = false, was mich aufgefordert, die HTTP-Anfrage mit dem Plugin zu untersuchen –

0

Ich würde beginnen, indem Stellen Sie sicher, dass Ihr HTML-Code XHTML ist. Umbrechen Sie Attributwerte in Anführungszeichen und beenden Sie die Eingabeelemente mit />. Verwenden Sie eine gültige DOCTYPE.

Versuchen Sie auch, den Wert der Senden-Schaltfläche auf "Senden" zu ändern (dies ist der Standardwert).

Probieren Sie es in verschiedenen Browsern, einschließlich der neuesten Version von Firefox.

0

Erstens muss Ihr <form> Tag angepasst werden:

<form method="post" ... > 

Zweitens, ich habe eine Funktion namens debugArray, die ich misbehaving Arrays ausspucken verwenden.Es ist sehr praktisch:

function debugArray($array){ 
    echo("<pre>"); 
    print_r($array); 
    echo("</pre>"); 
} 

Dann es in Ihrem Code wie folgt aufrufen:

debugArray($_POST); 

Durch auf den gesamten Inhalt des $ _POST Array suchen, können Sie genau sehen, was gesendet wird, was ist nicht, und wie es gesendet wird.

Ich bin bereit zu wetten, dass eine der folgenden Möglichkeiten zutrifft:

  1. Sie haben einen Rechtschreibfehler in einem Feldnamen, daran erinnern, dass Namen Fall sind sensetive.
  2. Ihr Formularfeld befindet sich außerhalb Ihrer <form> Tags.
  3. Sie haben einen Wert, der nicht korrekt maskiert wird, oder aus anderen Gründen aus dem $ _POST entfernt wird.

Edit: Und ich würde auch geneigt sein, Ihre Kopie von Firefox zu aktualisieren.

+1

Ich benutze "print_r ($ _ POST)" und bekomme nichts ("Array()") Ich habe den obigen Formularcode geschrieben –

+0

Firefox Kommentar nicht ed, aber dies ist eine Version mit einem sehr beliebten Netbook gebündelt und so wäre es am besten, es zu unterstützen –

+0

Wenn Sie eine völlig leere $ _POST-Array sehen, bedeutet dies, dass Ihr Firefox nicht korrekt die Informationen posten - verwenden Sie irgendeine Form von Datenschutz-Software? Welche Version von PHP verwenden Sie? Welcher Browser? Welcher Server (Apache, Windows)? – EvilChookie

Verwandte Themen