Categories

Hardware

Templates

Mobile

Jeux

Divers

Calendrier
«    May 2012    »
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
Advertisement
Annuaires
autoformations.com
lopman vous propose dans Webmastring » Asp :

Présentation de l’objet Request

Le rôle de l’objet Request est de permettre de récupérer la requête HTTP envoyée par le client au serveur, c’est-à-dire qu’il permet en réalité de manipuler l’ensemble des informations envoyées par le navigateur du visiteur (page demandée, nom et version du navigateur, cookies stockés sur le disque du client, adresse IP du client, …).

Les constituants de l’objet Request

L’objet Request possède plusieurs collections, une propriété et une méthode :

CollectionsPropriétésMéthodes
ClientCertificate TotalBytes BinaryRead
Cookies    
Form    
QueryString    
ServerVariables    

La majorité des propriétés et des méthodes de l’objet Request correspondent à des fonctions ou propriétés permettant de manipuler les champs de la requête HTTP.

La réception de données

Pour comprendre comment utiliser l’objet Request, il est nécessaire de connaître la manière de laquelle les données sont envoyées au navigateur grâce à la requête HTTP. Pour cela réferrez-vous à la section « formulaire HTML ».

L’envoi de données à un script CGI se fait par l’intermédiaire d’un formulaire HTML.

Les formulaires HTML se créent à l’aide de la balise <FORM> contenant des boutons, des champs, des listes et/ou des cases à cocher repérés par des noms auxquels seront associés des valeurs, fonction de la saisie des utilisateurs, puis d’un bouton de soumission du formulaire qui enverra l’ensemble des informations au script indiqué en tant qu’attribut Action de la baliseFORM selon la méthode GET ou POST. Chaque élément du formulaire doit posséder un nom unique, de telle façon que la valeur associée à l’élément forme avec le nom de celui-ci une paire nom/valeur du type :

Nom_de_l_element=valeur

L’ensemble des paires nom/valeur sont séparées par des esperluettes (le caractère « & »). Ainsi, l’envoi d’un formulaire crée une chaîne de la forme :

 

Le rôle de l’objet Request est de permettre de récupérer la requête HTTP envoyée par le client au serveur, c’est-à-dire qu’il permet en réalité de manipuler l’ensemble des informations envoyées par le navigateur du visiteur (page demandée, nom et version du navigateur, cookies stockés sur le disque du client, adresse IP du client, …). 

Les constituants de l’objet Request

L’objet Request possède plusieurs collections, une propriété et une méthode :

CollectionsPropriétésMéthodes
ClientCertificate TotalBytes BinaryRead
Cookies    
Form    
QueryString    
ServerVariables    

La majorité des propriétés et des méthodes de l’objet Request correspondent à des fonctions ou propriétés permettant de manipuler les champs de la requête HTTP.

La réception de données

Pour comprendre comment utiliser l’objet Request, il est nécessaire de connaître la manière de laquelle les données sont envoyées au navigateur grâce à la requête HTTP. Pour cela réferrez-vous à la section « formulaire HTML ».

L’envoi de données à un script CGI se fait par l’intermédiaire d’un formulaire HTML.

Les formulaires HTML se créent à l’aide de la balise <FORM> contenant des boutons, des champs, des listes et/ou des cases à cocher repérés par des noms auxquels seront associés des valeurs, fonction de la saisie des utilisateurs, puis d’un bouton de soumission du formulaire qui enverra l’ensemble des informations au script indiqué en tant qu’attribut Action de la baliseFORM selon la méthode GET ou POST. Chaque élément du formulaire doit posséder un nom unique, de telle façon que la valeur associée à l’élément forme avec le nom de celui-ci une paire nom/valeur du type :

Nom_de_l_element=valeur

L’ensemble des paires nom/valeur sont séparées par des esperluettes (le caractère « & »). Ainsi, l’envoi d’un formulaire crée une chaîne de la forme :

champ1=valeur1&champ2=valeur2&champ3=valeur3

L’envoi de cette chaîne se fera différemment selon que la méthode utilisée pour l’envoi du formulaire est GET ou POST.

  • la méthode GET permet d’envoyer les éléments du formulaire au travers de l’URL du script, en ajoutant l’ensemble des paires nom/valeur à l’URL du script, séparé de celui-ci par un point d’interrogation, ce qui donne une URL du type :
    http://nom_du_serveur/cgi-bin/script.cgi?champ1=valeur1&champ2=valeur2...

    Toutefois, la longueur de la chaîne URL étant limitée à 255 caractères, les informations situées au-delà de cette limite seront irrémédiablement perdues. De plus, cela crée une URL surchargée dans la barre d’adresse d’un navigateur et peut dévoiler des informations sensibles comme un mot de passe…

  • la méthode POST est une bonne alternative à la méthode GET. Cette méthode code les informations de la même façon que la méthode GET (encodage URL et paires nom/valeur) mais elle envoie les données à la suite des en-têtes HTTP, dans un champ appelé corps de la requête. De cette façon la quantité de données envoyées n’est plus limitée, et est connue du serveur grâce à l’en-tête permettant de connaître la taille ducorps de la requête.

  Il est possible de lire les informations transmises à la page cible avec une seule et unique méthode et ce quelle que soit la méthode d’envoi (GET ou POST).
Par exemple :

 

dim sParam1 : sParam1 = Request("Param1")
dim sParam2 : sParam2 = Request("Param2")

Cela est très pratique lorsqu’une même page peut être appelée par un formulaire en GET et un autre en POST.

La collection QueryString

La collection QueryString permet de récupérer la chaîne de requête envoyée par le client, c’est-à-dire les paires clés/valeurs présentes dans l’URL après le point d’interrogation. Prenons par exemple l’URL suivante :

http://www.dyalo.com/asp/caddie.asp?param=12&nom=Jeff

La chaîne de requête est ainsi la suivante :

param=12&nom=Jeff

param et nom sont ici des champs (parfois appelés clés) et leurs valeurs respectives sont 12 etJeff.

Voici la syntaxe de la collection QueryString :

<%@ LANGUAGE="VBSCRIPT" %>
<% Request.QueryString("Champ")[(Index)|.Count] %>
  • Le paramètre champ désigne la variable que l’on désire récupérer. Il s’agit d’un paramètre obligatoire.
  • Le paramètre optionnel index permet de définir de façon plus précise le champ auquel on fait référence, lorsqu’il existe plusieurs champs de même nom.
  • Le paramètre optionnel .count permet de connaître le nombre de variables possédant le nom champ.

Ainsi, la récupération de la variable nom dans l’exemple ci-dessus se fera grâce à l’instruction suivante :

<% Request.QueryString("nom") %>

Dans le cas où le formulaire possède plusieurs éléments de même nom (c’est le cas des cases à cocher et des menus à multiples sélections), il est possible de parcourir les éléments grâce aux paramètres index et count de la collection QueryString. Soit le formulaire suivant :

<FORM action="mes_loisirs.asp" method="get">
	<BR><INPUT type="checkbox" name="choix" value="musique"> musique
	<BR><INPUT type="checkbox" name="choix" value="cinéma"> cinéma
	<BR><INPUT type="checkbox" name="choix" value="sport"> sport
	<BR><INPUT type="checkbox" name="choix" value="théâtre"> théâtre
	<BR><INPUT type="submit" value="Valider la sélection">
</FORM>

Il est possible d’afficher le nombre de choix sélectionnés, ainsi que de les lister de la façon suivante dans le fichier mes_loisirs.asp (valeur de l’attribut action du formulaire ci-dessus ; le fichier mes_loisirs.asp pouvant être le même fichier que celui contenant le formulaire).

<%
Response.Write "J'ai sélectionné "
& Request.QueryString("choix").Count
& " loisirs : <BR>"
for i = 1 to Request.QueryString("choix").Count
	Response.Write "<BR>"
	& Request.QueryString("choix")(i)
next
%>

Il est possible d’afficher tous les champs d’un formulaire en utilisant la clause For Each du VBScript, qui permet de parcourir l’ensemble des enregistrements d’une collection. Voici un script qui affiche l’ensemble des valeurs associées aux champs d’un formulaire après envoi au serveur :

<%@ LANGUAGE="VBSCRIPT" %>
<%
For Each Champ in Request.QueryString
Response.write(Champ & " = " & Request.QueryString(Champ))
Next
%>
<BR>

Enfin pour afficher tous les champs, et les valeurs prises par chaque champ, voici un exemple de code :

<%@ LANGUAGE="VBSCRIPT" %>
<%
For Each Champ in Request.QueryString
Response.write("<P>" & Champ & " : " & Request.QueryString(Champ))
	For i = 1 to Request.QueryString(Champ).Count
	Response.Write("<BR>Valeur numéro "
	& Request.QueryString("choix").Count
	& ": " & Request.QueryString(Champ)(i))
	Next
Next
%>
<BR>

La collection Form

Alors que la collection QueryString permet de récupérer de façon simple les données envoyées au script ASP par l’intermédiaire de l’URL (ou plus exactement par la méthode GET du protocole HTTP), la collection Form permet de manipuler les données envoyées par un formulaire en utilisant la méthode POST.

La collection Form permet de récupérer la valeur associée à un champ par la syntaxe suivante :

<%@ LANGUAGE="VBSCRIPT" %>
<% Request.Form("Champ") %>

Ainsi pour afficher tous les champs d’un formulaire, il est possible, comme pour la collection QueryString, d’utiliser la clause For Each du VBScript, permettant de parcourir les enregistrements d’une collection. Voici un script qui affiche l’ensemble des valeurs associées aux champs d’un formulaire après envoi au serveur :

<%@ LANGUAGE="VBSCRIPT" %>
<% For Each Champ in Request.Form %>
<%
Response.write(Champ + " = ")
Response.write(Request.Form(Champ)) %>
<%BR%>
<% Next %>

La collection Cookies

La collection Cookies permet de récupérer les valeurs d’un cookie, c’est-à-dire un fichier présent sur le disque du client contenant des données envoyées par le serveur (un cookie peut être créé grâce à l’objet Response).

L’accès aux données d’un cookie se fait de la manière suivante :

<%@ LANGUAGE="VBSCRIPT" %>
<% Variable = Request.Cookies("NomCookie")("Element") %>

Il est possible de parcourir l’ensemble des cookies par le script suivant :

<%@ LANGUAGE="VBSCRIPT" %>
<% For Each Element in Request.Cookies %>
<%
Response.write(Element + " = ")
Response.write(Request.Cookies(Element)) %>
<BR>
<% Next %>

La collection ServerVariables

La collection ServerVariables de l’objet Request contient les en-têtes HTTP de la requête, pouvant parfois donner des informations très utiles sur les visiteurs ou le nom et la version du navigateur du client…

La syntaxe pour récupérer ces en-têtes est la suivante :

Request.ServerVariables("NOM-EN-TETE")

Voici les principaux en-têtes pouvant être utiles :

Nom de l’en-têteDescription
ALL_HTTP Tous les en-têtes HTTP envoyés par le client.
ALL_RAW Tous les en-têtes HTTP envoyés par le client sans formatage (de façon brute).
APPL_MD_PATH Chemin précisé dans la balise <Base>.
APPL_PHYSICAL_PATH Chemin physique (sur le serveur) associé à celui précisé dans la balise <Base>.
AUTH_PASSWORD Mot de passe saisi lors d’une authentification HTTP.
AUTH_TYPE Type d’authentification retenue par le serveur (basic oudigest).
AUTH_USER Nom d’utilisateur saisi lors d’une authentification HTTP.
CONTENT_LENGTH Longueur (en octets) du corps de la requête.
CONTENT_TYPE Type de contenu du corps de la requête (par exempletext/html). Voir types MIME.
HTTP_ACCEPT Valeur de la directive Accept du protocole HTTP.
HTTP_ACCEPT_ENCODING Valeur de la directive Accept-Enconding du protocole HTTP.
HTTP_ACCEPT_LANGUAGE Langage attendu par le browser (anglais par défaut).
HTTP_COOKIE Chaîne correspondant aux éventuels cookies du client.
HTTP_HOST Information sur le nom de la machine du client.
HTTP_REFERER URL de la page ayant mené à la présente page via un lien hypertexte.
HTTP_USER_AGENT Chaîne donnant des informations sur le client, comme le nom et la version du navigateur, et éventuellement le système d’exploitation.
HTTPS Indique si le client est en connexion sécurisée ou non (la valeur est ON ou OFF).
REFERER URL du lien à partir duquel la requête a été effectuée.
REMOTE_ADDR Adresse IP du client.
REMOTE_HOST Nom de la machine du client.
REQUEST_METHOD Type de méthode utilisée par le client (i.e. POST ou GET).
SCRIPT_NAME Chemin relatif du script en cours d’exécution (par rapport à la racine du serveur web).
SERVER_PROTOCOL Version du protocole HTTP utilisé par le serveur.
23 March 2011 | Telechargements : [1286] | 0

Ecrire un commentaire

[not-wysywyg]{bbcode}[/not-wysywyg]
Nom ou pseudo :
E-mail :
Code : Include security image CAPCHA.
update code
Introduire :
AutoFormations.com



� 2007-2011 AutoFormations.com | Abuse email: AutoFormations@gmail.com | Designed by JavaX36
puuuuuuuuuuuuub5