Erstellen von Sitzungsvariablen in Dreamweaver

Einführung

Bei der Entwicklung von Webanwendungen möchten Webentwickler mitunter Zugriff auf variable Informationen haben, die nicht über eine URL übergeben werden, aber in der Anwendung zur Verfügung stehen. Beispielsweise könnte eine Kalender-Webanwendung Besucher nach ihrer Zeitzone befragen. Anschließend könnte diese Webanwendung dann Datum und Uhrzeit dieser Zeitzone auf allen Seiten der Anwendung anzeigen. Sitzungsvariablen ermöglichen es, diese Funktionalität bereitzustellen.

Sitzungsvariablen stellen zwar ein leistungsstarkes Tool im Arsenal des Webentwicklers dar, jedoch erstellt Dreamweaver nicht automatisch den gesamten Code, der erforderlich ist, um diese zu verwenden. Dieses Dokument beschreibt Sitzungsvariablen und gibt Anleitungen für deren Nutzung in den verschiedenen von Dreamweaver unterstützten Servermodellen.

Voraussetzungen

Um dieses Dokument nutzen und verstehen zu können, muss der Entwickler mit einem Servermodell wie ASP oder ColdFusion arbeiten. Der Entwickler benötigt Grundkenntnisse der nachstehend aufgeführten Konzepte. Außerdem muss eine Version von Dreamweaver eingesetzt werden, die dynamische Entwicklung unterstützt (Dreamweaver MX oder Dreamweaver MX 2004). Weitere Informationen sind den entsprechenden Abschnitten des Dreamweaver-Benutzerhandbuchs oder des Hilfesystems zu entnehmen.

  • Vorbereitungen für die Erstellung dynamischer Sites
  • Erstellen dynamischer Seiten

Funktionsweise von Sitzungsvariablen

Sitzungsvariablen ermöglichen es Entwicklern, Informationen zu den Besuchern der Site zu speichern, indem eine Variable gesetzt wird, auf die die Anwendung für die Dauer der Sitzung eines Besuchers zugreifen kann.

Sitzungsvariablen verfügen über die folgenden Eigenschaften:

  • Sofern nicht anders angegeben verfallen Sitzungsvariablen 20 Minuten, nachdem ein Besucher die Site verlassen hat.
  • Sitzungsvariablen laufen ab, wenn 20 Minuten lang keine Aktivität des jeweiligen Site-Besuchers auf der Site festgestellt wird. Sie laufen auch ab, wenn der Besucher den Webbrowser schließt.
  • Für die Nutzung von Sitzungsvariablen muss der Browser des Besuchers so eingerichtet ist, dass er die Nutzung von Cookies zulässt.
  • Alle Seiten für die Site müssen sich in demselben Verzeichnis auf dem Webserver befinden.
  • In Sitzungsvariablen gespeicherte Informationen sind spezifisch für den jeweiligen Besucher der Site. Der Zugriff auf die Informationen in den Sitzungsvariablen anderer Besucher der Site ist nicht möglich.

In der Regel erfassen Entwickler die Daten für die Sitzungsvariablen, indem sie den Besucher ein Formular in der Webanwendung ausfüllen lassen. Die Sitzungsvariable wird auf den Wert eines Formularfelds gesetzt. Die Beispiele in dieser TechNote legen den Wert einer Sitzungsvariable auf Grundlage der Informationen von einem Formularelement fest.

Dreamweaver verfügt für alle Servermodelle bis auf ASP.NET über eine menügesteuerte Funktion, mit der eine Sitzungsvariable nach der Erstellung in die Seite übernommen wird. Dreamweaver stellt jedoch keine menügesteuerte Funktion bereit, um einer Sitzungsvariable einen Wert zuzuweisen (auch als Instanziierung einer Sitzungsvariable bezeichnet). Sie müssen einer Sitzungsvariable im Quellcode manuell einen Wert zuweisen.

Erstellen einer Sitzungsvariable in ASP-, ColdFusion-, JSP- oder PHP-Anwendungen

Hinweis: Das Beispiel für ASP.NET unterscheidet sich relevant von denen für die anderen Servermodelle, da ASP.NET normalerweise Webformulare anstatt der herkömmlichen HTML-Formulare verwendet. Wenn Sie das ASP.NET-Servermodell benutzen, richten Sie sich nach dem Beispiel für ASP.NET am Ende dieses Dokuments.

  1. Definieren Sie eine ASP-, ColdFusion-, JSP- oder PHP-Website.
  2. Erstellen Sie drei dynamische Seiten innerhalb der Site. Die erste Seite enthält ein HTML-Formular (im nächsten Schritt beschrieben), das an die zweite Seite übermittelt wird. Auf der zweiten Seite erstellen Sie einen Hyperlink auf die dritte Seite.

    Hinweis: Dieses Beispiel verwendet drei Seiten, um zu demonstrieren, dass eine Sitzungsvariable für eine zweite, eine dritte und nachfolgende Seiten verfügbar ist. Anforderungsvariablen, die eine Alternative zu Sitzungsvariablen darstellen, können von einer Seite an eine zweite Seite übertragen werden. Auf einer dritten und weiteren nachfolgenden Seite sind sie jedoch nicht verfügbar.

  3. Erstellen Sie auf der ersten Seite ein Formular mit einem Textfeldformularelement und einer Schaltfläche für die Übermittlung des Formulars. Stellen Sie sicher, dass die Formularsteuerelementattribute wie folgt gesetzt sind:
    • Wählen Sie das Textfeld aus und benennen Sie es mithilfe des Eigenschafteninspektors mit „txtFirstName“.
    • Wählen Sie das Formular-Tag aus (klicken Sie auf die rote gestrichelte Linie, die die Formularsteuerelemente umrandet, oder klicken Sie im Tag-Selektor auf das Formular-Tag). Richten Sie die zweite Seite im Eigenschafteninspektor als die Formularaktion ein. Legen Sie als Formularmethode POST fest. Im Zusammenhang mit Sitzungsvariablen wird auch oft die Methode GET genutzt, aber dieses Beispiel benutzt der Einfachheit halber die Methode POST.
  4. Starten Sie die Codeansicht auf der zweiten Seite („Ansicht“ > „Code“). Geben Sie vor dem einleitenden <html>-Tag den Ihrem Servermodell entsprechenden Code ein (siehe nachstehende Liste).

    Dieser Code ruft den Inhalt aus dem auf der ersten Seite erstellten Formularelement „txtFirstName“ ab. Er erstellt dann eine Sitzungsvariable mit dem Namen „sessFirstName“ und setzt diese auf den Inhalt des Formularelements. Anders formuliert: Dieser Code erstellt eine Sitzungsvariable mit den Informationen, die der Besucher auf der Formularseite eingegeben hat.

    • ASP (VBScript) (Achten Sie darauf, dass der Code in einer Zeile steht, d. h. ohne jeden Zeilenwechsel)

      <%session("sessFirstName")=Request.Form("txtFirstName")%>
    • ASP (JavaScript) (Achten Sie darauf, dass der Code in einer Zeile steht, d. h. ohne jeden Zeilenwechsel)
      <%Session("sessFirstName")=String(Request.Form("txtFirstName"))%>
    • ColdFusion
      <cfset Session.sessFirstName = #Form.txtFirstName#>

      Für die Nutzung von Sitzungsvariablen muss bei ColdFusion zudem eine Datei „Application.cfm“ im Stammverzeichnis der Site angelegt werden, sofern die Site nicht bereits eine solche Datei aufweist. Die Datei „Application.cfm“ muss den folgenden Code enthalten:

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

      Hinweis: Auf UNIX-Systemen wird bei Dateinamen zwischen Groß- und Kleinschreibung unterschieden. Stellen Sie daher sicher, dass der Dateiname „Application.cfm“ mit einem Großbuchstaben „A“ geschrieben ist. Zu den weiteren Einstellungen in der Datei „Application.cfm“ siehe die Dokumentation zu ColdFusion.
    • JSP (Achten Sie darauf, dass der Code in einer Zeile steht, d. h. ohne jeden Zeilenwechsel)
      <%session.setAttribute("sessFirstName", request.getParameter("txtFirstName"));%>

      Der folgende Code funktioniert ebenfalls, jedoch wird in der aktuellen Java-Spezifikation von einem derartigen Gebrauch von „putValue“ abgeraten (als „deprecated“ markiert):

      <%session.putValue("sessFirstName", request.getParameter("txtFirstName"));%>
    • PHP
      <?php session_start(); session_register("sessFirstName"); $sessFirstName = $HTTP_POST_VARS['txtFirstName']; ?>

      Wenn unter Windows im Browser ein PHP-Fehler auftritt, kann es sein, dass die Installation von PHP keinen gültigen Speicherordner für Sitzungsdaten besitzt. Dieser Parameter trägt in der Datei „PHP.ini“ wie auch in der Datei „httpd.conf“ die Bezeichnung „session.save_path“. Der Speicherort ist optional, aber die folgenden Einstellungen würden funktionieren:

      session.save_path = c:\php\sessiondata

      Abhängig von Ihrer PHP-Konfiguration ist es mitunter erforderlich, die Sitzungsverwaltung auf allen im Zusammenhang mit der Sitzung stehenden Seiten manuell zu aktivieren. Fügen Sie die folgende Codezeile am Anfang einer jeden Seite ein:

      <?php session_start();?>

      Alternativ zum Aufruf der Funktion „session_start ()“ auf jeder Seite können Sie PHP auch anweisen, Sitzungen automatisch zu starten, indem Sie die Option „session.auto_start“ in der Datei „php.ini“ aktivieren.
  5. Bleiben Sie auf dieser Seite und öffnen Sie das Bindungenbedienfeld („Fenster“ > „Bindungen“). Wählen Sie im Plusmenü (+) die Option „Sitzungsvariable“. Geben Sie im Dialogfeld „Sitzungsvariable“ den Wert „sessFirstName“ (ohne die Anführungszeichen) in das Feld „Name“ ein und klicken Sie auf „OK“.
  6. Erweitern Sie das im Bindungenbedienfeld angezeigte Sitzungsvariablensymbol. Ziehen Sie das Symbol „sessFirstName“ auf das Dokumentfenster. Die Inhalte der Sitzungsvariable werden in diese Seite geschrieben.
  7. Öffnen Sie die dritte Seite und wiederholen Sie die Schritte 4 und 5. Stellen Sie auch hier sicher, dass die zweite Seite einen Link zur dritten Seite aufweist.
  8. Speichern, veröffentlichen und testen Sie alle drei Seiten. Wenn Sie nicht die erwarteten Ergebnisse erhalten, überprüfen Sie die Groß- und Kleinschreibung und die Rechtschreibung des Formularelements, der Sitzungsvariable und der Anforderungsvariable. Das Sitzungssymbol ist jetzt im Bindungenbedienfeld jeder Seite dieser Site sichtbar.

 

Erstellen einer Sitzungsvariable in ASP.NET

  1. Definieren Sie eine ASP.NET-Website.
  2. Erstellen Sie zwei Seiten innerhalb der Site. Die erste Seite enthält ein ASP.NET-Webformular, welches an sich selbst sendet und dann zur zweiten Seite umgeleitet wird.

    Hinweis: Dieses Beispiel verwendet zwei Seiten, um zu demonstrieren, dass eine Sitzungsvariable für eine zweite, eine dritte, eine vierte und nachfolgende Seiten verfügbar ist. Anforderungsvariablen, die eine Alternative zu Sitzungsvariablen darstellen, können von einem ASP.NET-Formular auf einer Seite nicht an eine zweite Seite übertragen werden.

  3. Die erste Seite muss ein ASP.NET-Webformular mit einem <asp:textbox>-Serversteuerelement und einem <asp:button>-Serversteuerelement enthalten. Setzen Sie das Attribut „id“ des Textfeldsteuerelements auf „txtFirstName“. Nachstehend finden Sie den vollständigen Code für die erste Seite. Wählen Sie wahlweise die C#- oder die VB-Variante, je nachdem, welche Sprache Sie für Ihre ASP.NET-Site gewählt haben.

    Dieser Code ruft den Inhalt aus dem <asp:textbox>-Serversteuerelement „txtFirstName“ ab. Er erstellt dann eine Sitzungsvariable mit dem Namen „sessFirstName“ und setzt diese auf den Inhalt des Serversteuerelements. Anders formuliert: Dieser Code erstellt eine Sitzungsvariable mit den Informationen, die der Besucher auf der Formularseite eingegeben hat.

    • ASP.NET (VB) - Seite 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>Sitzungsseite 1</title></head><body>ASP.NET VB-Beispiel mit Sitzungsvariable und Webformular - Seite 1<form id="Form1" method="post" runat="server"><p>Vorname:<asp:TextBox id="txtFirstName" runat="server" /></p><p><asp:Button id="Button1" runat="server" Text="Abschicken" onClick="Button1_Click" /></p></form></body></html>
    • ASP.NET (C#) - Seite 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>Sitzungsseite 1</title></head><body>ASP.NET C#-Beispiel mit Sitzungsvariable und Webformular - Seite 1<form id="Form1" method="post" runat="server"><p>Vorname:<asp:TextBox id="txtFirstName" runat="server" /></p><p><asp:Button id="Button1" runat="server" Text="Abschicken" onClick="Button1_Click" /></p></form></body></html>
  4. Wechseln Sie auf der zweiten Seite zur Codeansicht („Ansicht“ > „Code“) und geben Sie den nachstehenden Code ein, um die Inhalte der Sitzungsvariable in die Seite zu schreiben. Wählen Sie auch hier wieder wahlweise die C#- oder die VB-Variante, je nachdem, welche Sprache Sie für Ihre ASP.NET-Site gewählt haben
    • ASP.NET (VB) - Seite 2 <%@ Page Language="vb" %><html><head><title>Sitzungsseite 2</title></head><body><p>ASP.NET VB-Beispiel mit Sitzungsvariable und Webformular - Seite 2</p><p>Vorname: <%= session("sessFirstName") %></p></body></html>
    • ASP.NET (C#) - Seite 2 <%@ Page Language="C#" %><html><head><title>Sitzungsseite 2</title></head><body><p>ASP.NET C#-Beispiel mit Sitzungsvariable und Webformular - Seite 2</p><p>Vorname: <%=Session["sessFirstName"]%></p></body></html>
  5. Speichern, veröffentlichen und testen Sie beide Seiten. Wenn Sie nicht die erwarteten Ergebnisse erhalten, überprüfen Sie die Groß- und Kleinschreibung und die Rechtschreibung der Serversteuerelemente, der Sitzungsvariable und der Anforderungsvariable.

Weitere Informationen

Weitere Informationen zu Sitzungsvariablen finden Sie in den folgenden Artikeln:

 

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?