Einführung

Bei der Entwicklung von Webanwendungen, möchten Webentwickler manchmal Zugriff auf variable Informationen haben, die nicht über eine URL übergeben wird, aber in der Anwendung zur Verfügung stehen. Beispielsweise könnte eine Kalenderwebanwendung Besuchern über ihre Zeitzonevoreinstellung erfragen. Anschließend könnte es dann Datum und Uhrzeit in dieser Zeitzone auf allen Seiten der Anwendung anzeigen. Sessionsvariablen können diese Funktionen bereitstellen.

Obwohl Sessionssvariablen ein leistungsstarkes Tool im Arsenal des Webentwicklers sind, erstellt Dreamweaver nicht automatisch den gesamten Code, der für dessen Funktion erforderlich ist. Dieses Dokument beschreibt Sessionsvariablen und gibt die Schritte für deren Anwendung in den unterschiedlichen Servermodellen die von Dreamweaver unterstützt werden, an.

Voraussetzungen

Die Benutzung und das Verstehen dieses Dokuments erfordert dass der Entwickler mit einem Servermodell, wie z. B. bei ASP oder ColdFusion arbeitet. Der Entwickler benötigt ausreichende Kenntnisse der folgenden Konzepte. Außerdem muss eine Version von Dreamweaver verwenden werden, die eine dynamische Entwicklung unterstützt (Dreamweaver MX oder Dreamweaver MX 2004). Siehe die zugehörigen Abschnitte der Gebrauchsanleitung des Dreamweaver oder das Hilfesystem, um weitere Informationen zu erhalten.

  • Vorbereitung für die Erstellung dynamischer Sites
  • Dynamische Seiten erstellen

Funktionsweise von Sessionsvariablen

Sessionsvariablen ermöglichen Entwicklern, Besucherinformationen zu speichern, indem sie eine Variable festlegen, die für die Anwendung zugänglich ist während der gesamten Session eines Besuchers.

Sitzungsvariablen verfügen über die folgenden Merkmale:

  • Sofern nicht anders angegeben, laufen Sessionsvariablen 20 Minuten nachdem der Besucher die Site verlässt ab.
  • Sitzungsvariablen laufen ab, wenn keine Aktivität von diesem bestimmten Site-Besucher für 20 Minuten auf der Site erkannt wird. Sie laufen auch ab, wenn der Besucher den Webbrowser beendet.
  • Damit Sessionsvariablen funktionieren, ist es erforderlich dass der Browser des Benutzers so eingerichtet ist, dass Cookies zugelassen werden.
  • Es ist erforderlich, dass alle Seiten für die Site sich innerhalb eines einzelnen Verzeichnis auf dem Webserver befinden.
  • Die Informationen, die in Sessionsvariablen gespeichert werden, sind Site-Besucher-spezifisch. Verschiedene Site Besucher können auf deren Information der Sessionsvariable nicht zugreifen.

In der Regel erfassen Entwickler die Daten für die Sessionsvariablen in dem ein Besucher ein Formular in der Webanwendung ausfüllt. Die Sessionsvariable wird auf den Wert eines Formularfelds festgelegt. Die Beispiele in dieser TechNote verwenden Informationen von einem Formularelement, um den Wert einer Sitzungsvariablen festzulegen.

Für alle Servermodelle außer ASP.NET, verfügt Dreamweaver über eine menügesteuerte Funktion um Sessionsvariablen an eine Seite zu schreiben nachdem eine Sessionsvariablen erstellt wurde. Jedoch stellt Dreamweaver keine menügesteuerte Funktion bereit, um einer Sessionsvariablen Wert zuzuweisen (auch bekannt als Instanziierung einer Sessionsvariablen). Sie müssen einer Sessionsvariablen Wert innerhalb des Quellcodes manuell zuweisen.

Erstellen Sie eine Sessionsvariable in ASP, ColdFusion, JSP oder PHP-Applikationen

Hinweis: Das Beispiel für ASP.NET unterscheidet sich deutlich von den anderen Servermodellen, da ASP.NET normalerweise Webformulare anstelle der herkömmlichen HTML-Formulare verwendet. Wenn Sie das ASP.NET-Servermodell benutzen, sehen Sie dasASP.NET Beispiel 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), die in die zweite Seite führt. Auf der zweiten Seite erstellen Sie einen Hyperlink der auf die dritte Seite zeigt.

    Hinweis: Der Grund dafür das dieses Beispiel drei Seiten verwendet, ist um nachzuweisen dass eine Sessionsvariable für eine zweite, dritte und nachfolgende Seite verfügbar ist. Anforderungsvariablen, die eine Alternative zu Sessionsvariablen sind, können von einer Seite zu einer zweiten wiedergegeben werden. Sie werden jedoch nicht für eine dritte oder eine nachfolgende Seite zur Verfügung stehen.

  3. Auf der ersten Seite, erstellen Sie ein Formular mit einem Textfeldformularelement und einer Sende-Taste. Stellen Sie sicher, dass die Attribute für Formularsteuerelemente wie folgt festgelegt sind:
    • Wählen Sie das Textfeld aus und geben Sie „txtFirstName“ mithilfe des Eigenschafteninspektors ein.
    • Wählen Sie den Formular-Tag aus (klicken Sie auf die rote gestrichelte Linie, die die Formularsteuerelemente umgibt oder klicken Sie im Tag-Selektor auf das Form-Tag). Richten Sie die zweite Seite als Formularübermittlung im Eigenschafteninspektor ein. Geben Sie post als Formularmethode ein. Die Methode „get“ wird auch oft mit Sessionsvariablen genutzt, aber dieses Beispiel benutzt die post Methode der Einfachheit halber.
  4. Auf der zweiten Seite, starten Sie die Codeansicht („Ansicht“> „Code“). Über dem öffnenden Tag < html >, geben Sie den Code für Ihr Servermodell aus der unteren Liste ein:

    Dieser Code zieht den Inhalt aus dem Formularelement „txtFirstName“, der auf der ersten Seite erstellt wurde. Es erstellt dann eine Sessionsvariable mit dem Namen „sessFirstName“, die den Inhalt des Formularelements gleich gelegt ist. Das heißt, dieser Code erstellt eine Sessionsvariable, die die Informationen enthält, die der Benutzer in die Seite eingibt.

    • ASP (VBScript) (stellen Sie sicher, dass der Code in einer einzelnen Zeile ist, ohne Zeilenwechsel),

      <%session("sessFirstName")=Request.Form("txtFirstName")%>
    • ASP (JavaScript) (stellen Sie sicher, dass der Code in einer einzelnen Zeile ist, ohne Zeilenwechsel),
      <%Session("sessFirstName")=String(Request.Form("txtFirstName"))%>
    • ColdFusion
      <cfset Session.sessFirstName = #Form.txtFirstName#>

      Um Sessionsvariablen zu verwenden, erfordert ColdFusion auch dass eine Application.cfm-Datei im Stammverzeichnis der Site angelegt wird, wenn sich auf Ihrer Site keine befindet. Die Application.cfm-Datei muss den folgenden Code enthalten:

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

      Hinweis:Auf UNIX-Systemen werden Dateinamen zwischen Groß- und Kleinschreibung unterschieden. Stellen Sie sicher, dass der Dateiname Application.cfm mit einem Großbuchstaben A geschrieben ist. Siehe ColdFusion-Dokumentation für andere Application.cfm-Einstellungen.
    • JSP (stellen Sie sicher, dass der Code in einer einzelnen Zeile ist, ohne Zeilenwechsel)
      < % session.setAttribute („sessFirstName“, request.getParameter („txtFirstName“));% >

      Der folgende Code funktioniert auch, ist aber in der neuesten Java Spezifikation veraltet:

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

      Wenn ein PHP-Fehler im Browser bei Windows auftritt, kann es sein, dass die Installation von PHP keinen gültigen Speicherordner für Sitzungsdaten hat. Dieser Parameter wird in der PHP.ini-Datei session.save_path und auch httpd.conf Datei genannt. 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 manchmal erforderlich, Sessionsverwaltung auf allen Seiten manuell zu aktivieren, die im Zusammenhang mit der Session stehen. Setzen Sie die folgende Codezeile auf jeder Seite:

      <?php session_start();?>

      Anstatt die session_start ()-Funktion auf jeder Seite aufzurufen, können Sie die PHP Sitzungen automatisch starten, indem Sie die session.auto_start Option in der php.ini-Datei einschalten. Weitere Informationen zum Konfigurieren von PHP für das Session-Handling kann bei Session-Handling mit PHP 4 gefunden werden.
  5. Bleiben Sie auf dieser Seite, öffnen Sie das Bedienfeld „Bindungen“ indem Sie „Fenster“> „Bindungen“ auswählen. Wählen Sie vom Plus (+) Menü Sessionsvariable aus. Im Dialogfeld Sessionvariable, geben Sie „sessFirstName“ (ohne Anführungszeichen) in das Namensfeld ein und klicken Sie auf OK.
  6. Erweitern Sie das Sessionsvariablen-Symbol, das im Bedienfeld Bindungen angezeigt wird. Ziehen Sie das „sessFirstName“ Symbol auf das Dokumentfenster. Die Inhalte der Sessionsvariable sind auf dieser Seite geschrieben.
  7. Öffnen Sie die dritte Seite und wiederholen Sie die Schritte 4 und 5. Stellen Sie erneut sicher, dass die zweite Seite einen Link zur dritten Seite hat.
  8. Speichern, veröffentlichen und überprüfen Sie alle drei Seiten. Wenn Sie die erwarteten Ergebnisse nicht erreichen, überprüfen Sie die Groß- und Kleinschreibung und die Rechtschreibung des Formularelements, der Sessionsvariablen und der Anforderungsvariable. Das Sessionssymbol ist jetzt im Bedienfeld „Bindungen“ für jede Seite in dieser Site sichtbar.

 

Erstellen Sie eine Sessionsvariable 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: Der Grund dafür das dieses Beispiel zwei Seiten verwendet, ist um nachzuweisen dass eine Sessionsvariable für eine zweite, dritte, vierte und nachfolgende Seiten verfügbar ist. Anforderungsvariablen, die eine Alternative zu Sessionsvariablen sind, können von einem ASP.NET Webformular auf einer Seite zu einer zweiten nicht wiedergegeben werden.

  3. Die erste Seite muss ein ASP.NET-Webformular enthalten, die ein <asp:textbox> Serversteuerelement und ein <asp:button> Serversteuerelement enthält. Richten Sie das Attribut „id“ des Textfeldsteuerelements auf „txtFirstName“ ein. Der vollständige Code für die erste Seite wird unten bereitgestellt. Wählen Sie entweder „C # oder VB aus, je nachdem, welche Sprachen Sie für Ihre ASP.NET-Site ausgewählt haben:

    Dieser Code zieht den Inhalt aus der <asp:textbox> Serversteuerung mit dem Namen „txtFirstName“. Es erstellt dann eine Sessionsvariable mit dem Namen „sessFirstName“, die den Inhalt des Serversteuerung gleich gelegt ist. Das heißt, dieser Code erstellt eine Sessionsvariable, die die Informationen enthält, die der Benutzer in die Seite eingibt.

    • 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. Auf der zweiten Seite, gehen Sie auf Codeansicht in dem Sie „Ansicht“> „Code“ auswählen, und geben den unteren Code ein, um die Inhalte der Sessionsvariablen auf die Seite zu schreiben. Wählen Sie erneut entweder „C # oder VB aus, je nachdem, welche Sprachen Sie für Ihre ASP.NET-Site ausgewählt haben:
    • 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. Speichern, veröffentlichen und beide Seiten testen. Wenn Sie die erwarteten Ergebnisse nicht erreichen, überprüfen Sie die Groß- und Kleinschreibung und die Rechtschreibung des Serversteuerung, der Sessionsvariablen und der Anforderungsvariable.

Weitere Informationen

Weitere Informationen über Sessionsvariablen finden Sie in den folgenden Artikeln:

 

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie