Introdução
Ao projetar aplicativos da Web, os desenvolvedores da Web às vezes desejarão acesso às informações da variável que não foi enviada por um URL, mas estão disponíveis no aplicativo. Por exemplo, um aplicativo da Web de calendário pode solicitar aos visitantes suas preferências de fuso horário. Então, ele poderia exibir a data e a hora nesse fuso horário através das páginas do aplicativo. As variáveis de sessão pode fornecer essa funcionalidade.
Embora as variáveis da sessão sejam uma ferramenta poderosa no arsenal do desenvolvedor da Web, o Dreamweaver não gera automaticamente todos os códigos necessários para funcionar. Este documento descreve as variáveis de sessão e fornece etapas para usá-las nos diferentes modelos de servidor suportados pelo Dreamweaver.
Pré-requisitos
Usar e entender este documento requer que o desenvolvedor esteja trabalhando com um modelo de servidor, como o ASP e o ColdFusion. O desenvolvedor requer conhecimento do trabalho com os seguintes conceitos. Além disso, eles devem usar uma versão do Dreamweaver que oferece suporte ao desenvolvimento dinâmico (Dreamweaver MX ou Dreamweaver MX 2004). Consulte as seções relacionadas do manual Usar o Dreamweaver ou a Ajuda do sistema para saber mais.
- Preparar para a criação de sites dinâmicos
- Como tornar as páginas dinâmicas
Como funcionam as variáveis de sessão
As variáveis de sessão permitem que os desenvolvedores armazenem informações do visitante ao definir uma variável que esteja acessível ao aplicativo pela duração da sessão de um visitante.
As variáveis de sessão têm as seguintes características:
- Salvo indicação em contrário, as variáveis de sessão expiram 20 minutos após que um visitante deixe o site.
- As variáveis de sessão expiram se nenhuma atividade for detectada no site por 20 minutos por aquela visitante específico ao site. Elas também expiram se o visitante sair de seu navegador da Web.
- Para que as variáveis de sessão funcionem, é necessário que o navegador do visitante esteja definido para aceitar cookies.
- É necessário que todas as páginas do site estejam dentro de um único diretório no servidor da Web.
- As informações armazenadas nas variáveis de sessão são específicas do visitante do site. Os diferentes visitantes do site não podem acessar as informações da variável de sessão do outro vistante.
Normalmente, os desenvolvedores capturam os dados para as variáveis de sessão fazendo com que um visitante preencha um formulário no aplicativo da Web. A variável de sessão é definida para o valor de um campo de formulário. Os exemplos nesta TechNote usa as informações de um elemento de formulário para definir o valor de uma variável de sessão.
Para todos os modelos de servidor, exceto o ASP.NET, o Dreamweaver possui um recurso conduzido por menu para escrever variáveis de sessão para uma página após uma variável de sessão ter sido criada. No entanto, O Dreamweaver não fornece um recurso conduzido por menu para atribuir um valor a uma variável de sessão (também conhecido como instanciar uma variável de sessão). É necessário atribuir manualmente um valor a uma variável de sessão no código fonte.
Criar uma variável de sessão no ASP, ColdFusion, JSP, ou em aplicativos PHP
Observação: o exemplo para ASP.NET difere substancialmente dos outros modelos de servidor, já que o ASP.NET normalmente usa formulários da Web em vez dos formulários HTML tradicionais. Se você estiver usando o modelo de servidor ASP.NET, consulte o exemplo do ASP.NET no final deste documento.
-
Defina um site ASP, ColdFusion, JSP ou PHP.
-
Crie três páginas dinâmicas dentro do site. A primeira página contém um formulário em HTML (descrito na próxima etapa) que envia para a segunda página. Na segunda página, crie um hiperlink que aponta para a terceira página.
Observação: o motivo pelo qual este exemplo usa três páginas é para mostrar que uma variável de sessão está disponível para uma segunda, terceira e subsequente página. As variáveis de solicitação, que são uma alternativa às variáveis de sessão, podem ser levadas de uma página para uma segunda página. No entanto, elas não estarão disponíveis para uma terceira página ou sequente.
-
Na primeira página primeira página, crie um formulário que contenha um elemento de formulário de campo de texto e um botão de envio. Certifique-se de que os atributos do controle do formulário estejam definidos como segue:
- Selecione o campo de texto e nomeie-o “txtFirstName” usando o inspetor de propriedades.
- Selecione o identificador do formulário (clique na linha tracejada vermelha que envolve os controles do formulário ou clique no identificador do formulário no seletor de identificadores). Defina a segunda página como a ação no formulário no inspetor de propriedades. Especifique a postagem como o método do formulário. O método “get” também é usado com variáveis de sessão, mas esse exemplo usa o método post para fins de simplicidade.
-
Na segunda página segunda página, inicie a Visualização do código (Exibir > Código). Acima da tag <html> de abertura, digite o código do modelo de servidor na lista abaixo:
esse código extrai o conteúdo do elemento do formulário denominado “txtFirstName” que foi criado na primeira página. A seguir, cria uma variável de sessão denominada “sessFirstName” que é definida igual ao conteúdo do elemento do formulário. Em outras palavras, esse código cria uma variável de sessão que mantém as informações que o usuário digita na página do formulário.- ASP (VBScript) (assegure-se de que o código esteja contido em uma única linha, sem quebras de linha)
<%session("sessFirstName")=Request.Form("txtFirstName")%> - ASP (JavaScript) (assegure-se de que o código esteja contido em uma única linha, sem quebras de linha)
<%Session("sessFirstName")=String(Request.Form("txtFirstName"))%> - ColdFusion
<cfset Session.sessFirstName = #Form.txtFirstName#>
Para usar variáveis de sessão, o ColdFusion também requer que um arquivo Application.cfm seja criado na raiz do site, se o seu site já não tiver um. O arquivo Application.cfm deve conter o seguinte código:
<CFAPPLICATION NAME="Name" SESSIONMANAGEMENT="Yes">
Observação: em sistemas UNIX, os nomes de arquivo diferenciam maiúsculas e minúsculas. Digite o nome do arquivo Application.cfm uma letra maiúscula A. Consulte a documentação do ColdFusion para outras configurações do Application.cfm. - JSP (certifique-se de que o código esteja contido em uma única linha, sem quebras de linha)
<%session.setAttribute("sessFirstName", request.getParameter("txtFirstName"));%>
O código a seguir também funciona, mas está obsoleto nas especificações mais recentes do Java:
<%session.putValue("sessFirstName", request.getParameter("txtFirstName"));%> - PHP
<?php session_start(); session_register("sessFirstName"); $sessFirstName = $HTTP_POST_VARS['txtFirstName']; ?>
Se ocorrer um erro de PHP no navegador no Windows, poder ser porque que a instalação do PHP não tenha um diretório válido para salvar para os dados da sessão. Esse parâmetro é denominado session.save_path no arquivo PHP.ini, assim como no arquivo do httpd.conf. O local do diretório é opcional, mas a seguinte configuração poderia funcionar
session.save_path = c:\php\sessiondata
Dependendo da configuração do PHP, às vezes é necessário ativar manualmente o gerenciamento da sessão em todas as páginas relacionadas à sessão. Coloque a seguinte linha de código na parte superior de cada página:
<?php session_start();?>
Em vez de chamar a função session_start () em cada página, você pode fazer com que o PHP inicie automaticamente as sessões ao ativar a opção session.auto_start no arquivo php.ini.
- ASP (VBScript) (assegure-se de que o código esteja contido em uma única linha, sem quebras de linha)
-
Ainda nesta página, abra o painel Vinculações escolhendo Janela > Vinculações. Do menu de adição (+), escolha Variável de sessão. Na caixa de diálogo Variável de sessão, insira “sessFirstName” (sem aspas) no campo Nome e clique em OK.
-
Expanda o ícone da variável de sessão que for exibido no painel Vinculações. Arraste o ícone “sessFirstName” para a janela Documento. O conteúdo da variável de sessão é gravado para essa página.
-
Abra a terceira página e repita as etapas 4 e 5. Além disso, certifique-se de que a segunda página tenha um link para a terceira página.
-
Salve, publique e teste todas as três páginas. Se você não obtiver os resultados esperados, verifique as maiúsculas e a ortografia do elemento do formulário, a variável de sessão e a variável de solicitação. O ícone da sessão agora está visível no painel Vinculações para cada página neste site.
Criar uma variável de sessão no ASP.NET
-
Defina um site ASP.NET.
-
Crie duas páginas dentro do site. A primeira página contém um formulário da Web ASP.NET que posta de volta a si mesmo e então redireciona para a segunda página.
Observação: o motivo pelo qual este exemplo usa duas páginas é para mostrar que uma variável de sessão está disponível para uma segunda, terceira, quarta e subsequente página. As variáveis de solicitação, que são uma alternativa às variáveis de sessão, não podem ser levadas de um formulário da Web ASP.NET de uma página para uma segunda página.
-
A primeira página deve conter um formulário da Web ASP.NET que contenha um controle do servidor <asp:textbox> e um controle do servidor <app:button>. Defina o atributo “id” do controle da caixa de texto como “txtFirstName”. O código completo para a primeira página é fornecido abaixo. Escolha C# ou VB, dependendo do idioma escolhido para seu site do ASP.NET:
Esse código obtém o conteúdo do controle do servidor <asp:textbox> denominado "txtFirstName." Cria uma variável de sessão denominada “sessFirstName” que é definida igual ao conteúdo do controle do servidor. Em outras palavras, esse código cria uma variável de sessão que mantém as informações que o usuário digita na página do formulário.
- ASP.NET (VB) - Página 1 <%@ Idioma da página="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>Página 1 da sessão</title></head><body> ASP.NET VB variável da sessão e exemplo de formulário da Web- página 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#) - Página 1 <%@ Idioma da página="C#" %><script runat="server"> void Button1_Click(object sender, EventArgs e) { Session["sessFirstName"] = Request["txtFirstName"]; Response.Redirect("session2.aspx"); }</script><html><head><title>Página 1 da sessão</title></head><body> ASP.NET C# variável da sessão e exemplo de formulário da Web- página 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>
-
Na segunda página, acesse a Visualização de código escolhendo Exibir > Código e ao inserir o código abaixo para gravar o conteúdo da variável de sessão na página. Além disso, escolha C# ou VB, dependendo do idioma escolhido para seu site do ASP.NET:
- ASP.NET (VB) - Página 2 <%@ Idioma da página="vb" %><html><head><title>Página da sessão 2</title></head><body><p>ASP.NET VB variável da sessão e exemplo de formulário da Web- página 2</p><p>first name: <%= session("sessFirstName") %></p></body></html>
- ASP.NET (C#) - Página 2 <%@ Idioma da página="C#" %><html><head><title>Página 2 da sessão 2</title></head><body><p>ASP.NET C# variável da sessão e exemplo de formulário da Web- página 2</p><p>first name: <%=Session["sessFirstName"]%></p></body></html>
-
Salve, publique e teste ambas as páginas. Se você não obtiver os resultados esperados, verifique as maiúsculas e a ortografia dos controles da variável do servidor, a sessão e a variável de solicitação.
Informações adicionais
Para obter mais detalhes sobre as variáveis de sessão, consulte os seguintes artigos: