Introduction
Lors de la création des applications web, les développeurs web souhaitent parfois l'accès aux informations des variables qui ne passent pas par une URL, mais qui sont disponibles dans l'application. Par exemple, une application web de calendrier peut demander aux visiteurs leurs préférences de fuseaux horaires. Ensuite, elle pourrait afficher la date et l'heure dans ce fuseau horaire, dans toutes les pages de l'application. Les variables de session peuvent fournir cette fonctionnalité.
Même si les variables de session sont un outil puissant dans cet arsenal du développeur web, Dreamweaver ne génère pas automatiquement la totalité de codes nécessaires pour leur travail. Ce document décrit les variables de session et fournit des étapes d'utilisation dans les différents modèles de serveurs compatibles avec Dreamweaver.
Conditions requises
L'emploi et la compréhension de ce document requiert le travail du développeur avec un modèle de serveur, par exemple ASP ou ColdFusion. Le développeur doit maîtriser les concepts suivants. En outre, il doit utiliser une version de Dreamweaver compatible avec un développement dynamique (Dreamweaver MX ou Dreamweaver MX 2004). Pour en savoir plus, consultez les sections Utilisation du mode d'emploi Dreamweaver ou Système d'aide.
- Préparation pour la création de sites dynamiques
- Faisant vos pages dynamiques
Fonctionnement des variables de session
Les variables de session permettent aux développeurs de stocker des informations des visiteurs, en définissant une variable accessible pour l'application, pendant la session d'un visiteur.
Les variables de session présentent les caractéristiques suivantes :
- Sauf indication contraire, les variables de session expirent 20 minutes après la sortie d'un visiteur du site.
- Les variables de session expirent si aucune activité de ce visiteur du site n'est détectée pendant 20 minutes. Elles expirent également si le visiteur sort du navigateur web.
- Pour le bon fonctionnent des variables de sessions, le navigateur du visiteur doit être réglé pour accepter des cookies.
- Toutes les pages du site doivent être placées dans un seul répertoire, sur le serveur web.
- Les informations stockées dans des variables de session sont spécifiques au visiteur du site. Les différents visiteurs du site n'ont pas accès aux informations des variables de session d'autres visiteurs.
Généralement, les développeurs capturent les données des variables de session, grâce au remplissage de la part du visiteur d'un formulaire dans l'application web. La variable de session est réglée selon la valeur d'un champ de formulaire. Les exemples de cette note technique utilisent des informations d'un formulaire pour définir la valeur d'une variable de session.
Pour tous les modèles de serveurs, à l'exception de ASP.NET, Dreamweaver possède une fonction avec des menus, destinée à l'écriture des variables de session sur une page, après la création d'une variable de session. Toutefois, Dreamweaver ne fournit pas une fonction basée sur des menus pour assigner une valeur à une variable de session (également appelée instancier une variable de session). Il est nécessaire d'assigner une valeur à une variable de session manuellement, dans le code source.
Créez une variable de session dans les applications ASP, ColdFusion, JSP, ou PHP
Remarque : L'exemple pour ASP.NET diffère considérablement des autres modèles de serveurs, car ASP.NET utilise généralement des formulaires web au lieu des formulaires HTML traditionnels. Si vous utilisez le modèle de serveur ASP.NET, consultez l'exemple ASP.NET à la fin de ce document.
-
Définissez un site Web ASP, ColdFusion, JSP ou PHP.
-
Créez trois pages dynamiques dans le site. La première page contient un formulaire HTML (décrit dans l'étape suivante) qui renvoie à la deuxième page. Dans la deuxième page, créez un lien hypertexte indiquant la troisième page.
Remarque : La raison pour laquelle cet exemple utilise trois pages est de montrer qu'une variable de session est disponible pour une deuxième, une troisième et une page suivante. Des variables de demande, représentant une alternative aux variables de session, peuvent être transférées d'une première page à une deuxième page. Cependant, elles ne sont pas disponibles pour une troisième page ou pour une page postérieure.
-
Sur la première page, créez un formulaire contenant un élément de formulaire champ de texte et un bouton pour son envoi. Assurez-vous que les attributs de contrôle du formulaire sont définis de la manière suivante :
- Choisissez le champ texte et appelez-le « txtFirstName », en utilisant l'Inspecteur des propriétés.
- Sélectionnez l'étiquette de formulaire (cliquez sur le pointillé rouge entourant les contrôles de formulaire ou cliquez sur l'étiquette de formulaire, dans le sélecteur d'étiquettes). Définissez la deuxième page comme une action du formulaire, dans l'Inspecteur des propriétés. Spécifiez la publication comme méthode de formulaire. La méthode « Obtenir » est fréquemment employée avec des variables de session, mais, dans un souci de simplicité, cet exemple emploie la méthode de publication.
-
Sur la deuxième page, lancez l'Affichage du code (Affichage > Code). Au-dessus de la balise <html> ouvrante, entrez le code correspondant à votre modèle de serveur d’après la liste ci-dessous :
Ce code extrait le contenu de l’élément de formulaire appelé « txtFirstName », créé à la première page. Il crée alors une variable de session appelée « sessFirstName », qui est réglée comme le contenu de l'élément de formulaire. En d'autres termes, ce code crée une variable de session qui contient des informations que l'utilisateur saisit sur la page du formulaire.- ASP (VBScript) (assurez-vous que le code tient sur une seule ligne, sans saut de ligne)
<%session ("sessFirstName")=Request.Form ("txtFirstName") %> - ASP (JavaScript) (assurez-vous que le code tient sur une seule ligne, sans saut de ligne)
<%Session ("sessFirstName")=String (Request.Form ("txtFirstName"))%> - ColdFusion
<cfset Session.sessFirstName = #Form.txtFirstName#>
Pour utiliser des variables de session, ColdFusion requiert également la création d’un fichier Application.cfm à la racine du site, si ce dernier n’en contient pas déjà un. Le fichier Application.cfm doit contenir le code suivant :
<CFAPPLICATION NAME="Name" SESSIONMANAGEMENT="Yes">
Remarque : Dans les systèmes UNIX, les noms de fichiers sont sensibles à la casse. Assurez-vous que le nom du fichier Application.cfm est écrit avec un A majuscule. Consultez la documentation de ColdFusion pour connaître les autres paramètres Application.cfm. - JSP (assurez-vous que le code tient sur une seule ligne, sans saut de ligne)
<%session.setAttribute("sessFirstName", request.getParameter("txtFirstName"));%>
Le code suivant fonctionne également, mais est devenu obsolète dans les dernières spécifications de Java :
<%session.putValue("sessFirstName", request.getParameter("txtFirstName"));%> - PHP
<?php session_start(); session_register("sessFirstName"); $sessFirstName = $HTTP_POST_VARS['txtFirstName']; ?>
Si une erreur PHP se produit dans le navigateur Windows, il se peut que l’installation de PHP n’ait pas de répertoire d’enregistrement valide pour les données de session. Ce paramètre est appelé session.save_path dans le fichier PHP.ini ainsi que dans le fichier httpd.conf. L’emplacement du répertoire est facultatif, mais le paramètre suivant peut fonctionner :
session.save_path = c:\php\sessiondata
Selon votre configuration PHP, il est parfois nécessaire d’activer manuellement la gestion d’une session sur toutes les pages liées à celle-ci. Insérez la ligne de code suivante en haut de chaque page :
<?php session_start();?>
Au lieu d’appeler la fonction session_start() sur chaque page, vous pouvez paramétrer PHP pour que les sessions s’ouvrent automatiquement, en activant l’option session.auto_start dans le fichier php.ini.
- ASP (VBScript) (assurez-vous que le code tient sur une seule ligne, sans saut de ligne)
-
Sur la page, ouvrez le panneau Liaisons, en sélectionnant Fenêtre > Liaisons. À partir du menu plus (+), sélectionnez Variable de Session. Dans la boîte de dialogue Variable de sessions, entrez « sessFirstName » (sans guillemets) dans le champ pour le nom et cliquez sur OK.
-
Élargissez l'icône Variable de session, qui s'affiche sur le panneau Liaisons. Déplacez l'icône « sessFirstName » vers la fenêtre de Document. Le contenu de variable de session s'écrit sur cette page.
-
Ouvrez la troisième page et répétez les étapes 4 et 5. Encore, assurez-vous que la deuxième page possède un lien vers la troisième page.
-
Enregistrez, publiez, et testez les trois pages. Si vous n'obtenez pas les résultats attendus, vérifiez les majuscules et l'orthographe de l'élément de formulaire, de la variable de session, et de la variable de demande. L'icône de session est désormais visible sur le panneau Liaisons pour chaque page dans ce site.
Créez une variable de session dans ASP.NET
-
Définissez un site Web ASP.NET.
-
Créez deux pages dans le site. La première page contient un formulaire Web ASP.NET, qui renvoie à lui-même, et puis à la deuxième page.
Remarque : La raison pour laquelle cet exemple utilise deux pages est de montrer qu'une variable de session est disponible pour une deuxième, une troisième, une quatrième, et les pages suivantes. Des variables de demande, qui représentent une alternative aux variables de session, ne peuvent pas être transférées d'une page d'un formulaire web ASP.NET sur une deuxième page
-
La première page doit contenir un formulaire Web ASP.NET avec un contrôle du serveur <asp:textbox> et un contrôle du serveur <asp:button>. Modifiez l'attribut « id » du contrôle de zone de texte à « txtFirstName ». Le code complet pour la première page est fourni ci-dessous. Sélectionnez C# ou VB, selon la langue que vous avez choisi pour votre site ASP.NET :
Ce code prend le contenu du contrôle du serveur <asp:textbox> appelé « txtFirstName. ». Il crée une variable de session appelée « sessFirstName » réglée selon le contenu du contrôle du serveur. En d'autres termes, ce code crée une variable de session qui contient des informations que l'utilisateur saisit sur la page du formulaire.
- ASP.NET (VB) - Page 1 <%@ Page Language="vb"%><script runat="server"> Sub Button1_Click(ByVal s As Object, ByVal e As EventArgs) Session("sessFirstName") = Request("txtFirstName") Response.Redirect("session2.aspx") End Sub</script><html><head><title>Session Page 1</title></head><body> ASP.NET VB session variable and web form example - page 1 <form id="Form1" method="post" runat="server"><p>first name:<asp:TextBox id="txtFirstName" runat="server" /></p><p><asp:Button id="Button1" runat="server" Text="Submit" onClick="Button1_Click" /></p></form></body></html>
- ASP.NET (C#) - Page 1 <%@ Page Language="C#" %><script runat="server"> void Button1_Click(object sender, EventArgs e) { Session["sessFirstName"] = Request["txtFirstName"]; Response.Redirect("session2.aspx"); }</script><html><head><title>Session Page 1</title></head><body> ASP.NET C# session variable and web form example - page 1<form id="Form1" method="post" runat="server"><p>first name:<asp:TextBox id="txtFirstName" runat="server" /></p><p><asp:Button id="Button1" runat="server" Text="Submit" onClick="Button1_Click" /></p></form></body></html>
-
Dans la deuxième page, accédez à l'Affichage du code en sélectionnant Affichage > Code, et saisissez le code ci-dessous pour écrire le contenu de la variable de session sur la page. Encore, sélectionnez C# ou VB, selon la langue que vous avez choisi pour votre site ASP.NET :
- ASP.NET (VB) - Page 2 <%@ Page Language="vb" %><html><head><title>Session – Page 2</title></head><body><p>ASP.NET VB : variable de session et exemple de formulaire web – page 2</p><p>prénom : <%= session("sessFirstName") %></p></body></html>
- ASP.NET (C#) - Page 2 <%@ Page Language="C#" %><html><head><title>Session – Page 2</title></head><body><p>ASP.NET C# : variable de session et exemple de formulaire web – page 2</p><p>prénom : <%=Session["sessFirstName"]%></p></body></html>
-
Enregistrez, publiez et testez les deux pages. Si vous n'obtenez pas les résultats attendus, vérifiez les majuscules et l'orthographe des contrôles du serveur, de la variable de session, et de la variable de demande.
Informations supplémentaires
Pour plus d'informations sur les variables de session, consultez les articles suivants :
Articles connexes
Adobe
Recevez de l’aide plus rapidement et plus facilement
Nouvel utilisateur ?