2017-10-09 8 views
0

Ceci est une position plus basique que je pensais avoir demandé depuis un moment. Je pense que j'ai peut-être trébuché sur une subtilité HTML5.Comment obtenir une soumission de formulaire avec des données vides?

J'ai travaillé sur la construction de la partie frontale d'une application Web, y compris la soumission d'une page entière via POST. Si je soumets une combinaison (assez légère) de champs via GET, elle apparaît dans l'URL et le script CGI voit un QUERY_STRING rempli.

J'essaie de renseigner QUERY_STRING via POST et je n'arrive pas à le remplir. L'exemple minimal que j'ai est:

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

Il en résulte, pour autant que je peux dire, est que la soumission POST ne présente jamais une chaîne vide. Je n'ai pas eu de problèmes particulièrement intéressants avec GET, mais ni peaufiner cet exemple (par exemple POST) ni peaufiner le code réel m'a laissé avec succès enregistrer un QUERY_STRING non vide quand soumis par POST.

Que puis-je/dois-je faire pour pouvoir transmettre des valeurs XYZ par POST à ​​un script CGI et que QUERY_STRING soit rempli avec les données soumises?

Répondre

1

Les données POST ne sont pas ajoutées à QUERY_STRING, elles sont envoyées dans le corps de la requête.

Si vous traitez la soumission de formulaire vous-même, sans bénéficier d'une bibliothèque ou d'un framework CGI, vous trouverez vos données POST sur STDIN.

Si vous utilisez une bibliothèque ou un framework, consultez la documentation pour savoir où les données POST ont été stockées.