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 préalables

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.

  1. Définissez un site Web ASP, ColdFusion, JSP ou PHP.
  2. 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.

  3. 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.
  4. Sur la deuxième page, lancez l'Affichage du code (Affichage > Code). Au-dessus de l'étiquette <html> qui s'ouvre, entrez le code pour votre modèle de serveur de la liste ci-dessous :

    Ce code prend 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 est contenu sur une seule ligne, sans sauts de ligne)

      <%session (« sessFirstName »)=Request.Form (« txtFirstName ») %>
    • ASP (JavaScript) (assurez-vous que le code est contenu sur une seule ligne, sans sauts de ligne)
      <%Session (« sessFirstName »)=String (Request.Form (« txtFirstName »))%>
    • ColdFusion cfset
      <cfset Session.sessFirstName = #Form.txtFirstName#>

      Pour utiliser des variables de session, ColdFusion requiert également la création d'un fichier .cfm. d'Application dans la racine du site, si votre site n'en a pas un. Le fichier d'Application.cfm doit contenir le code suivant :

      <CFAPPLICATION NAME="Name" SESSIONMANAGEMENT="Yes">

      Remarque : Dans les systèmes UNIX, les noms des fichiers distinguent les majuscules/minuscules. Assurez-vous que le nom du fichier d'Application.cfm. est écrit avec un grand A. Consultez la documentation de ColdFusion pour connaître d'autres paramètres d'Application.cfm.
    • JSP (assurez-vous que le code est contenu sur une seule ligne, sans sauts de ligne)
      <%session.setAttribute("sessFirstName", request.getParameter("txtFirstName"));%>

      Le code suivant fonctionne également, mais a été désapprouvé 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 de PHP se produit dans le navigateur Windows, peut-être l'installation de PHP n'a pas un répertoire de sauvegarde valide pour des données de session. Ce paramètre est appelé session.save_path dans le fichier PHP.ini ainsi que le fichier httpd.conf. L'emplacement du répertoire est facultatif, mais le paramètre suivant peut s'exécuter :

      session.save_path = c:\php\sessiondata

      Selon votre configuration de 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 régler PHP pour une ouverture automatique des sessions, en activant l'option session.auto_start dans le fichier php.ini. Pour plus d'informations sur la configuration de PHP pour la gestion de session, consultez Gestion de session avec PHP 4.
  5. 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.
  6. É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.
  7. 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.
  8. 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

  1. Définissez un site Web ASP.NET.
  2. 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

  3. 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>
  4. 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 session variable and web form example - page 2</p><p>first name: <%= 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# session variable and web form example - page 2</p><p>first name: <%=Session["sessFirstName"]%></p></body></html>
  5. 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 :

 

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne