VBScript et cookies

Que sont les cookies?

Les navigateurs Web et les serveurs utilisent le protocole HTTP pour communiquer et HTTP est un protocole sans état. Mais pour un site Web commercial, il est nécessaire de conserver les informations de session entre différentes pages. Par exemple, l'enregistrement d'un utilisateur se termine après avoir terminé de nombreuses pages. Mais comment conserver les informations de session de l'utilisateur sur toutes les pages Web. Dans de nombreuses situations, l'utilisation de cookies est la méthode la plus efficace pour mémoriser et suivre les préférences, les achats, les commissions et autres informations nécessaires pour une meilleure expérience des visiteurs ou des statistiques du site.

Comment ça fonctionne?

Votre serveur envoie certaines données au navigateur du visiteur sous la forme d'un cookie. Le navigateur peut accepter le cookie. Si tel est le cas, il est stocké sous forme d'enregistrement en texte brut sur le disque dur du visiteur. Désormais, lorsque le visiteur arrive sur une autre page de votre site, le navigateur envoie le même cookie au serveur pour récupération. Une fois récupéré, votre serveur sait / se souvient de ce qui a été stocké précédemment. Les cookies sont un enregistrement de données en texte brut de 5 champs de longueur variable -

  • Expires- La date d'expiration du cookie. Si ce champ est vide, le cookie expirera lorsque le visiteur quittera le navigateur.

  • Domain - Le nom de domaine de votre site.

  • Path- Le chemin d'accès au répertoire ou à la page Web qui a défini le cookie. Cela peut être vide si vous souhaitez récupérer le cookie à partir de n'importe quel répertoire ou page.

  • Secure- Si ce champ contient le mot «sécurisé», alors le cookie ne peut être récupéré qu'avec un serveur sécurisé. Si ce champ est vide, une telle restriction n'existe pas.

  • Name=Value - Les cookies sont définis et récupérés sous la forme de paires clé et valeur.

Les cookies ont été initialement conçus pour la programmation CGI et les données des cookies sont automatiquement transmises entre le navigateur Web et le serveur Web, de sorte que les scripts CGI sur le serveur peuvent lire et écrire les valeurs des cookies stockées sur le client.

VBScript peut également manipuler les cookies à l'aide de la propriété cookie de l' objet Document . VBScript peut lire, créer, modifier et supprimer le ou les cookies qui s'appliquent à la page Web actuelle.

Stockage des cookies

Le moyen le plus simple de créer un cookie est d'attribuer une valeur de chaîne à l' objet document.cookie , qui ressemble à ceci -

Syntaxe

document.cookie = "key1 = value1;key2 = value2;expires = date"

Ici, l' attribut expire est facultatif. Si vous fournissez à cet attribut une date ou une heure valide, le cookie expirera à la date ou à l'heure indiquée et après cette date, la valeur des cookies ne sera plus accessible.

Exemple

Voici l'exemple pour définir un nom de client dans le cookie d' entrée .

<html>
   <head>
      <script type = "text/vbscript">
         Function WriteCookie
            If document.myform.customer.value = "" Then
               msgbox "Enter some value!"
            Else
               cookievalue = (document.myform.customer.value)
               document.cookie = "name = " + cookievalue
               msgbox "Setting Cookies : " & "name = " & cookievalue
            End If
         End Function
      </script>
   </head>
   
   <body>
      <form name = "myform" action = "">
         Enter name: <input type = "text" name = "customer"/>
         <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
      </form>
   </body>
</html>

Cela produira le résultat suivant. Entrez maintenant quelque chose dans la zone de texte et appuyez sur le bouton "Set Cookie" pour définir les cookies.

Enter name:

Maintenant, votre système a un cookie appelé nom . Vous pouvez définir plusieurs cookies à l'aide de plusieurs paires clé = valeur séparées par une virgule. Vous apprendrez comment lire ce cookie dans la section suivante.

Lire les cookies

La lecture d'un cookie est aussi simple que l'écriture d'un cookie, car la valeur de l' objet document.cookie est le cookie. Ainsi, vous pouvez utiliser cette chaîne chaque fois que vous souhaitez accéder au cookie. La chaîne document.cookie conservera une liste de paires nom = valeur séparées par des points-virgules où nom est le nom d'un cookie et valeur est sa valeur de chaîne. Vous pouvez utiliser la fonction split () des chaînes pour diviser la chaîne en clé et en valeurs comme suit -

Exemple

Voici l'exemple pour obtenir les cookies définis dans la section précédente -

<html>
   <head>
      <script type = "text/vbscript">
         Function ReadCookie
            allcookies = document.cookie
            msgbox "All Cookies : " + allcookies
            cookiearray = split(allcookies,";")
            
            For i = 0 to ubound(cookiearray)
               Name  = Split(cookiearray(i),"=")
               Msgbox "Key is : " + Name(0) + " and Value is : " + Name(1)
            Next
         End Function
      </script>
   </head>
   
   <body>
      <form name = "myform" action = "">
         <input type = "button" value = "Get Cookie" onclick = "ReadCookie()"/>
      </form>
   </body>
</html>

Note- Ici, UBound est une méthode de la classe Array , qui renvoie la longueur d'un tableau. Nous discuterons des tableaux dans un chapitre séparé; en attendant, essayez de le digérer.

Cela produira le résultat suivant. Maintenant, appuyez sur le bouton "Get Cookie" pour voir les cookies que vous avez définis dans la section précédente.

Note- Il se peut que d'autres cookies soient déjà installés sur votre ordinateur. Ainsi, le code ci-dessus vous montrera tous les cookies définis sur votre machine.

Définition de la date d'expiration des cookies

Vous pouvez prolonger la durée de vie d'un cookie au-delà de la session actuelle du navigateur en définissant une date d'expiration et en enregistrant la date d'expiration dans le cookie. Cela peut être fait en définissant l' attribut expires sur une date et une heure.

Exemple

L'exemple suivant montre comment définir la date d'expiration des cookies après 1 mois -

<html>
   <head>
      <script type = "text/vbscript">
         Function WriteCookie()
            x = now()
            y = dateadd("m",1,now())  ' Making it to expire next 
            cookievalue = document.myform.customer.value
            document.cookie = "name = "  & cookievalue
            document.cookie = "expires = " & y
            msgbox("Setting Cookies : " & "name=" & cookievalue )
         End Function
      </script>
   </head>
   <body>
      <form name = "myform" action = "">
         Enter name: <input type = "text" name = "customer"/>
         <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
      </form>
   </body>
</html>

Supprimer un cookie

Parfois, vous souhaiterez supprimer un cookie afin que les tentatives ultérieures de lecture du cookie ne renvoient rien. Pour ce faire, il vous suffit de définir la date d'expiration sur une heure du passé.

Exemple

L'exemple suivant illustre comment supprimer un cookie en définissant sa date d'expiration 1 mois dans le passé -

<html>
   <head>
      <script type = "text/vbscript">
         Function WriteCookie()
            x = now()
            x = now()
            a = Month(x)-1
            b = day(x)
            c = year(x)
            d = DateSerial(c,a,b)
            e = hour(x) 
            
            msgbox e
            f = minute(x)
            
            msgbox f
            d = cdate(d & " " & e & ":" & f)
            
            msgbox d
            cookievalue = document.myform.customer.value
            document.cookie = "name = "  & cookievalue
            document.cookie = "expires = " & d
            msgbox("Setting Cookies : " & "name=" & cookievalue )
         End Function
      </script>
   </head>
   <body>
      <form name = "myform" action = "">
         Enter name: <input type = "text" name = "customer"/>
         <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
      </form>
   </body>
</html>