/**
Description : Petits problèmes auxquels vous devez faire attention lors de l'utilisation de l'objet Requête ASP Auteur : Ci Qinqiang
Courriel : [email protected]
**/
Dans ASP, l'objet Request 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 différences entre les méthodes d’écriture suivantes et comment doivent-elles être écrites ?
strMessage = Requête("msg")
strMessage = Request.Form("msg")
De plus, j'ai vu des codes écrits par de nombreuses personnes, et ils sont tous écrits à la manière Request("") Bien sûr, il n'y a rien de mal à cette façon d'écrire.
Mais tout le monde devrait faire attention
L'objet Request dispose de plusieurs collections pour obtenir les données soumises par le client. Les plus couramment utilisées sont QueryString, Form et ServerVariables.
Quel que soit le type de collection, elle peut être obtenue directement via Request("") Il y a un problème ici.
La méthode Get et la méthode Post soumettent la même variable, telle que username=cqq, puis vous utilisez Request("username")
Les données sont-elles extraites des données de Get ou des données de Post ?
Ainsi, lorsque la question arrive à ce point, tout le monde devrait y penser. Request prend les données de ces collections dans l'ordre, d'avant en arrière, QueryString, Form et enfin ServerVariables. L'objet Request recherche les variables dans ces collections dans cet ordre. S'il y a une correspondance, elle s'arrêtera et le reste sera ignoré. Ainsi, l'exemple ci-dessus Request("username")
Ce qui est réellement obtenu, ce sont les données soumises par la méthode Get.
Par conséquent, afin d'améliorer l'efficacité, de réduire le temps de recherche inutile et également de standardiser le programme, il est recommandé d'utiliser la méthode de collecte Request, telle que Request.Form("username").
Voici un exemple de test Après soumission, vous pouvez ajouter directement ?username=aaa après l'adresse à tester :
<%
Si request("submit")<>"" alors
Response.Write "Obtenir directement :"& Request("username") & "<br>"
Response.Write "Get:" & Request.QueryString("username") & "<br>"
Response.Write "Obtenir le message :" & Request.Form ("username") & "<br>"
Terminer si
%>
<nom du formulaire=form1 action="" méthode=post>
<input type=test name="username" value="postuser">
<input type=submit name="submit" value="test">
</form>