Introduzione
Durante la progettazione di applicazioni web, talvolta gli sviluppatori web vogliono l'accesso alle informazioni variabili che non vengono passate mediante un URL, ma è disponibile nell'applicazione. Ad esempio, un'applicazione web del calendario può chiedere ai visitatori la preferenza del fuso orario. Quindi, è possibile visualizzare la data e l'ora del fuso orario in tutte le pagine dell'applicazione. Le variabili di sessione possono fornire questa funzionalità.
Sebbene le variabili di sessione sono un potente strumento nell'arsenale dello sviluppatore web, Dreamweaver non genera automaticamente tutti gli codici necessarie per l'uso. Questo documento descrive le variabili di sessione e fornisce i passaggi per utilizzarli nei modelli di un altro server supportate da Dreamweaver.
Prerequisiti
Il uso e la comprensione di questo documento richiedono che lo sviluppatore non sia in esecuzione con un modello server, ad esempio ASP o ColdFusion. Lo sviluppatore richiede la conoscenza di lavoro delle idee di seguito. Inoltre, è necessario utilizzare una versione di Dreamweaver che supporta lo sviluppo dinamico (Dreamweaver MX o di Dreamweaver MX 2004). Consultate le sezioni correlate del manuale o del Sistema di Aiuto di Dreamweaver per saperne di più.
- Preparazione per Costruire Siti Dinamici
- Fare Pagine Dinamiche
Funzionamento delle variabili di sessione
Le variabili di sessione consentono agli sviluppatori di memorizzare le informazioni del visitatore impostando una variabile che è accessibile all'applicazione per la durata della sessione del visitatore.
Le variabili di sessione hanno le seguenti caratteristiche:
- A meno che non sia specificato diversamente, le variabili di sessione scadono 20 minuti dopo che un visitatore non esca il sito.
- Le variabili di sessione scadono se non è stata rilevata alcuna attività nel sito per 20 minuti di tale visitatore specifico. Loro anche scadono se il visitatore uscite dal browser web.
- Per fare in modo che le variabili di sessione possono essere utilizzate, è necessario che il browser del visitatore sia impostato per accettare i cookie.
- È necessario che tutte le pagine del sito siano posizionati all'interno di una stessa directory sul server web.
- Le informazioni archiviate in variabili di sessione sono visitatore specifico. I visitatori diverse non possono accedere alle informazioni variabili di sessione di ciascuno di essi.
In genere, gli sviluppatori acquisiscono i dati per le variabili di sessione quando un visitatore del sito compila un modulo nell'applicazione web. La variabile di sessione viene impostata sul valore di un campo modulo. Gli esempi di queste informazioni utilizzano della nota tecnica da un elemento modulo per impostare il valore di una variabile di sessione.
Per tutti i modelli di server eccetto ASP.NET, Dreamweaver dispone di una funzione di menu per scrivere le variabili di sessione per una pagina dopo una variabile di sessione viene creata. Tuttavia, Dreamweaver non fornisce una struttura di menu per assegnare un valore a una variabile di sessione (conosciuto anche come creare l'istanza di una variabile di sessione). È necessario per assegnare manualmente un valore in una variabile di sessione nel codice di origine.
Creare una variabile di sessione nelle applicazioni ColdFusion, ASP, JSP o PHP
Nota: L'esempio per ASP.NET varia notevolmente dagli altri modelli server, siccome ASP.NET in genere utilizza i moduli web al posto dei moduli HTML tradizionali. Se si utilizza il modello di server ASP.NET, vedere l'esempio ASP.NET alla fine del documento.
-
Definire un sito web ColdFusion, ASP, JSP o PHP.
-
Creare tre pagine dinamiche che si trovano all'interno del sito. La prima pagina contiene un modulo HTML (descritto al punto successivo) contenente della presentazione alla seconda pagina. Nella seconda pagina, create un collegamento ipertestuale che indica la terza pagina.
Nota: Il motivo per cui questo esempio utilizza tre pagine è di verificare che una variabile di sessione è disponibile in un secondo, un terzo e alla pagina successiva. Le variabili di richiesta, che è un'alternativa a variabili di sessione, possono essere conservati da una pagina a un'altra. Tuttavia, non sono disponibili a una terza o pagina successiva.
-
Nella prima pagina, create un modulo che contiene un elemento modulo del campo di testo e un pulsante invia. Accertatevi che gli attributi del controllo modulo siano impostati come segue:
- Selezionate il campo di testo e assegnate il nome «txtFirstName» utilizzando la finestra di ispezione Proprietà.
- Selezionate il tag del modulo (fate clic sulla linea rossa tratteggiata attorno ai controlli modulo o fate clic sul tag nel selettore di tag). Impostate la seconda pagina come azione modulo nella finestra di ispezione Proprietà. Specificate la casella come il metodo del modulo. Il metodo «Get» viene spesso anche utilizzato con le variabili di sessione, ma in questo esempio è utilizzato il metodo post per una maggiore semplicità.
-
Nella seconda pagina, lanciate Vista codice (Visualizza> Codice). Sopra il tag <html> di apertura, inserite il codice per il modello di server dall'elenco di seguito:
Questo codice richiama i contenuti dall'elemento modulo denominato “txtFirstName” che era stato creato nella prima pagina. Viene quindi creata una variabile di sessione denominata «sessFirstName» che è uguale al contenuto dell'elemento modulo. In altre parole, questo codice consente di creare una variabile di sessione che contiene informazioni che l'utente ha fornito alla pagina del modulo.- ASP (VBScript) (assicuratevi che il codice sia contenuto in una sola riga, senza interruzioni di riga)
<%session("sessFirstName")=Request.Form("txtFirstName")%> - ASP (JavaScript) (assicuratevi che il codice sia contenuto in una sola riga, senza interruzioni di riga)
<%Session("sessFirstName")=String(Request.Form("txtFirstName"))%> - ColdFusion
<cfset Session.sessFirstName = #Form.txtFirstName#>
Per utilizzare le variabili di sessione, ColdFusion richiede che un file Application.cfm sia stato creato nella cartella principale del sito, se il sito non ne ha già uno. Il file di Application.cfm deve contenere il seguente codice:
<CFAPPLICATION NAME="Name" SESSIONMANAGEMENT="Sì">
Nota: Sui sistemi Unix, i nomi dei file vengono fatti con distinzione tra maiuscole e minuscole. Verificate che il nome del file sia scritto Application.cfm con A maiuscola. Consultate la documentazione di ColdFusion per altre impostazioni di Application.cfm. - JSP (accertatevi che il codice sia contenuto in una sola riga, senza interruzioni di riga)
<%session.setAttribute("sessFirstName", request.getParameter("txtFirstName"));%>
Il codice seguente funziona, ma è stato dichiarato obsoleto nelle ultime specifiche di Java:
<%session.putValue("sessFirstName", request.getParameter("txtFirstName"));%> - PHP
<?php session_start(); session_register("sessFirstName"); $sessFirstName = $HTTP_POST_VARS['txtFirstName']; ?>
Se un errore PHP si verifica nel browser in Windows, è possibile che l'installazione di PHP non disponga di una directory valida per salvare i dati di accesso. Questo parametro è chiamato session.save_path nel file PHP.ini e anche il file del httpd.conf. La posizione della directory è opzionale, ma può essere utilizzata l'impostazione seguente:
session.save_path = c:\php\sessiondata
A seconda della configurazione PHP, talvolta è necessario attivare manualmente la gestione delle sessioni a tutte le pagine correlate alla sessione. Inserite la seguente riga di codice nella parte superiore di ogni pagina:
<?php session_start();?>
Invece di chiamare la funzione session_start() su ciascuna pagina, potete utilizzare PHP per avviare automaticamente le sessioni con l'attivazione dell'opzione session.auto_start nel file php.ini.
- ASP (VBScript) (assicuratevi che il codice sia contenuto in una sola riga, senza interruzioni di riga)
-
Alla pagina, aprite il pannello Associazioni scegliendo Finestra> Associazioni. Dal menu più (+), scegliete Variabile di Sessione. Nella finestra di dialogo Variabile di Sessione, immettete «sessFirstName» (senza virgolette) nelle campo del nome e fate clic su OK.
-
Espandete l'icona variabile di sessione che viene visualizzata nel pannello Associazioni. Trascinate l'icona «sessFirstName» nella finestra del Documento. I contenuti variabili di sessione vengono scritti in questa pagina.
-
Aprite la terza pagina e ripetete i punti 4 e 5. Di nuovo, verificate che la seconda pagina sia un collegamento alla terza pagina.
-
Salvare, pubblicare e provare tutte e tre le pagine. Se non avete ottenuto i risultati desiderati, controllate le maiuscole e la scrittura dell'elemento modulo, una variabile di sessione, e una variabile di richiesta. L'icona di sessione è ora visibile nel pannello Associazioni per ogni pagina in questo sito.
Creare una variabile di sessione in ASP.NET
-
Definite un sito Web ASP.NET.
-
Create due pagine all'interno del sito. La prima pagina contiene un Modulo Web ASP.NET che invia di nuovo a se stesso, quindi esegue il reindirizzamento alla seconda pagina.
Nota: Il motivo per cui questo esempio utilizza due pagine è di verificare che una variabile di sessione è disponibile in un secondo, un terzo, un quarto e nelle pagine successive. Le variabili di richiesta, che sono un'alternativa a variabili di sessione, non possono essere conservati da un Modulo Web ASP.NET a una pagina in un'altra pagina.
-
La prima pagina deve contenere un Modulo Web ASP.NET che contiene un controllo del server <asp:casella di testo> e un controllo del server <asp:pulsante>. Impostate l'attributo di «id» della casella di testo «txtFirstName». Il codice completo per la prima pagina viene fornito di seguito. Scegliete C # o VISUAL BASIC, a seconda del linguaggio che avete scelto per il sito ASP.NET:
Questo codice tira i contenuti del controllo del server <asp:casella di testo> chiamato «txtFirstName.» Crea una variabile di sessione denominata «sessFirstName» che è uguale al contenuto del controllo del server. In altre parole, questo codice consente di creare una variabile di sessione che contiene informazioni che l'utente ha fornito alla pagina del modulo.
- 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>
-
Nella seconda pagina, accedete la vista del codice scegliendo Visualizzare > Codice e digitate il codice seguente per scrivere i contenuti nella sessione variabili nella pagina. Di nuovo, scegliete C # o VISUAL BASIC, a seconda del linguaggio che avete scelto per il sito 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>
-
Salvare, pubblicare e provare le due pagine. Se non avete ottenuto i risultati desiderati, controllate le maiuscole e la scrittura dei controlli del server, una variabile di sessione, e una variabile di richiesta.
Informazioni aggiuntive
Per ulteriori informazioni sulle variabili di sessione, consultate i seguenti articoli: