GET Variablen nicht, wenn gemischt mit URL übergeben
Frage
Warum ist es, dass, wenn ich Parameter durch kodierte URL übergeben und GET-Methode in HTML-Form, die URL kodierten Parameter fallen gelassen werden?
z. Setup:
<form action="process.php?hello=world" method="GET">
<input type="text" name="foo" value="bar">
<input type="submit">
</form>
. Ergebnis: die Variable hello
nicht in process.php
erkannt werden
Ist die schlechte Praxis?
Ist dies, wie PHP verarbeitet sie, oder es wird damit zusammen, wie der Browser die Anfrage senden? Gibt es das gleiche Problem in anderen Sprachen?
Lösung
Ja, das ist eine schlechte Praxis, weil es funktioniert einfach nicht.
Wenn Sie in „hidden Formulareingabe“ übergeben wollen, dann müssen Sie ein verstecktes Formularelement verwenden:
<input type="hidden" name="hello" value="world" />
Wie rezzif Zustände in seinem Kommentar, können Sie mischen GET & POST etwa so:
<form action="/something?foo=bar" method="POST">
<input type="text" name="baz" />
</form>
Als allgemeine Regel, die ich vermeiden Mischen der beiden though. Ich finde es bizarr GET params in meiner Form Aktion zu haben.