Dans ASP, l'objet de demande est un objet très important pour obtenir les données soumises par le client, et tout le monde le connaît très bien. Malgré cela, les gens me demandent souvent quelles sont les méthodes d'écriture suivantes et comment dois-je les écrire?
strMessage = request ("msg")
strMessage = request.form ("msg")
De plus, j'ai également vu le code écrit par de nombreuses personnes, qui sont toutes écrites en demande (""). Bien sûr, il n'y a rien de mal à l'écriture.
Mais tout le monde devrait faire attention
L'objet de demande dispose de plusieurs collections pour obtenir les données soumises par le client. Généralement, la requête, la forme et les variables serveurs sont couramment utilisées.
Peu importe quelle collection est réellement directement obtenue via la demande (""), il y a un problème ici.
La méthode GET et la méthode Post Soumettent la même variable, comme UserName = CQQ, puis vous utilisez la demande ("nom d'utilisateur")
Les données sont-elles obtenues à partir de GET ou POST?
Ainsi, lorsque le problème arrive à ce point, vous devez penser qu'il y a une séquence dans laquelle la demande a récupéré les données de ces ensembles, de l'avant en arrière
L'ordre est la requête, la forme et enfin les serveurs. Les objets de demande sont recherchés dans cet ordre
S'il y a des variables dans ces ensembles, elles seront interrompues et les variables suivantes seront ignorées. Ainsi, l'exemple de demande ci-dessus ("nom d'utilisateur")
Ce qui est récupéré, ce sont en fait les données soumises par la méthode GET.
Par conséquent, afin d'améliorer l'efficacité et de réduire le temps de recherche inutile, ainsi que pour la spécification du programme, il est recommandé d'utiliser la demande.
La méthode est meilleure, comme request.form ("nom d'utilisateur").
Ce qui suit est un exemple de test. Après la soumission, vous pouvez ajouter directement? Username = aaa à l'adresse à tester:
<%
IfRequest ("soumettre") <> "" puis
Response.write "directement:" & demande ("nom d'utilisateur") & "<br>"
Response.Write "Get:" & request.Querystring ("nom d'utilisateur") & "<br>"
Response.Write "Takes Post:" & request.form ("nom d'utilisateur") & "<br>"
Endire
%>
<formName = form1action = "" méthode = post>
<portType = testName = "username" value = "Posser">
<portType = soumidName = "soumi" value = "test">
</ form>