2017-10-09 1 views
0

Dies ist eine einfachere Position als ich dachte, dass ich seit einiger Zeit gefragt habe. Ich denke, dass ich über eine HTML5-Subtilität gestolpert bin.Wie bekomme ich eine Formularübermittlung mit leeren Daten?

Ich habe daran gearbeitet, das Frontend zu einer Webapp zu entwickeln, einschließlich einer ganzen Seite Einreichung über POST. Wenn ich eine (leicht genug) Kombination von Feldern über GET einreiche, erscheint sie in der URL und das CGI-Skript sieht ein gefülltes QUERY_STRING.

Ich versuche und fehlgeschlagen, die QUERY_STRING über POST zu füllen. Das minimale Beispiel ich habe, ist:

<!DOCTYPE html> 
<html> 
    <body> 
     <form action="/" method="POST"> 
      <input type="hidden" name="test" id="test" value="test"> 
      <input type="submit"> 
     </form> 
    </body> 
</html> 

Dies führt, soweit ich das beurteilen kann, ist, dass die POST Unterwerfung immer nur eine leere Zeichenfolge übergibt. Ich hatte keine besonders interessanten Schwierigkeiten mit GET, aber weder dieses Beispiel zu optimieren (z. B. POST), noch den echten Code zu optimieren, ließ mich eine nichtleere QUERY_STRING erfolgreich protokollieren, wenn sie von POST übergeben wurde.

Was kann/sollte ich tun, damit ich XYZ-Werte per POST an ein CGI-Skript übergeben kann und QUERY_STRING mit den übermittelten Daten gefüllt werden kann?

Antwort

1

POST-Daten werden nicht an QUERY_STRING angehängt, sie werden im Hauptteil der Anforderung gesendet.

Wenn Sie die Formularübergabe selbst durchführen, ohne den Vorteil einer CGI-Bibliothek oder eines Frameworks, finden Sie Ihre POST-Daten auf STDIN.

Wenn Sie eine Bibliothek oder ein Framework verwenden, lesen Sie in der Dokumentation nach, wo die POST-Daten gespeichert wurden.

Verwandte Themen