Introducción

Al diseñar aplicaciones web, los desarrolladores web quieren, a veces, acceder a la información de las variables que no pasa a través de la DIRECCIÓN URL, pero está disponible en la aplicación. Por ejemplo, una aplicación web del calendario se puede solicitarle a los visitantes la preferencia de la zona horaria. A continuación, puede mostrar la fecha y la hora en el huso horario en las páginas de la aplicación. Las variables de sesión pueden proporcionar esta funcionalidad.

Aunque las variables de sesión son una herramienta eficaz del conjunto de desarrollo web, Dreamweaver no genera automáticamente todo el código necesario para que funcionen. En este documento se describen las variables de sesión y se indican los pasos para utilizarlos en los distintos modelos de servidor admitidos en Dreamweaver.

Requisitos previos

Utilizar y comprender este documento requiere que el desarrollador esté trabajando con un modelo de servidor como ASP o ColdFusion. El desarrollador requiere el conocimiento de los siguientes conceptos. Además, deben utilizar una versión de Dreamweaver que admita el desarrollo dinámico (Dreamweaver MX o Dreamweaver MX 2004). Consulte las secciones relacionadas del manual Uso de Dreamweaver o el sistema de ayuda para obtener más información.

  • Prepararse para Sitios dinámicos de compilación
  • Realización de páginas dinámicas

Cómo funcionan las variables de sesión

Las variables de sesión permiten a los desarrolladores almacenar información sobre los visitantes mediante la configuración de una variable que sea accesible para la aplicación durante la duración de la sesión de un visitante.

Las variables de sesión tienen las siguientes características:

  • A menos que se indique lo contrario, las variables de sesión caducan 20 minutos después de que un visitante sale del sitio.
  • Las variables de sesión caducan si no se detecta ninguna actividad en el sitio durante 20 minutos por parte de ese visitante específico del sitio. También caducan si el visitante abandona su navegador web.
  • Para que las variables de sesión funcionen, es necesario que el navegador del visitante esté configurado para aceptar cookies.
  • Es necesario que todas las páginas del sitio se ubiquen dentro de un directorio del servidor web.
  • La información almacenada en las variables de sesión es específica del visitante del sitio. Los diferentes visitantes del sitio no podrán acceder a la información de las variables de sesión del otro.

Normalmente, los desarrolladores capturan los datos para las variables de sesión al hacer que el visitante complete un formulario en la aplicación web. La variable de sesión se establece en el valor de un campo de formulario. Los ejemplos de esta nota técnica utilizan información de un elemento de formulario para establecer el valor de una variable de sesión.

Para todos los modelos de servidor excepto ASP.NET, Dreamweaver tiene una función controlada por un menú para escribir variables de sesión a una página después de creada una variable de sesión. Sin embargo, Dreamweaver no proporciona una función controlada por menú para asignar un valor a una variable de sesión (también conocido como crear una variable de sesión). Es necesario asignarle un valor a una variable de sesión de forma manual en el código fuente.

Cree una variable de sesión en aplicaciones ColdFusion, ASP, JSP o PHP

Nota: El ejemplo para ASP.NET difiere en gran parte de los otros modelos de servidor ASP.NET, ya que suele utilizar formularios web en lugar de formularios HTML tradicionales. Si está utilizando el modelo de servidor ASP.NET, consulte el ejemplo de ASP.NET al final de este documento.

  1. Defina una página web de ColdFusion, ASP, JSP o PHP.
  2. Cree tres páginas dinámicas dentro del sitio. La primera página contiene un formulario HTML (descrito en el paso siguiente) que se envía a la segunda página. En la segunda página, cree un vínculo de hipertexto que apunte a la tercera página.

    Nota: El motivo por el que en este ejemplo se utilizan tres páginas es comprobar que una variable de sesión está disponible para una segunda, tercera y subsiguiente página. Las Variables de petición, que son una alternativa a las variables de sesión, se pueden transferirse de una primera página a una segunda. Sin embargo, no están disponibles para una tercera o para una página subsiguiente.

  3. En la primera página, cree un formulario que contenga un elemento de formulario de campo de texto y un botón enviar. Asegúrese de que los atributos de control del formulario estén establecidos como se indica a continuación:
    • Seleccione el campo de texto y asígnele el nombre “txtFirstName” con el inspector de propiedades.
    • Seleccione la etiqueta de formulario (haga clic en la línea de puntos color rojo alrededor de los controles del formulario o haga clic en la etiqueta del formulario en el selector de etiquetas). Defina la segunda página como la acción del formulario en el inspector de propiedades. Especifique Post como el método del formulario. “Get” es el método que también se utiliza frecuentemente con variables de sesión, pero en este ejemplo se utiliza el método post por cuestiones de simplicidad.
  4. En la segunda páginade inicio a la vista del código (Ver > Código). Por encima de la etiqueta <html>, escriba el código para el modelo de su servidor de la lista que aparece a continuación:

    Este código extrae el contenido del elemento de formulario llamado “txtFirstName” que se creó en la primera página. A continuación, crea una variable de sesión llamada “sessFirstName” que se establece de igual manera al contenido del elemento de formulario. Es decir, este código crea una variable de sesión que contiene la información que introduce el usuario en la página del formulario.

    • ASP (VBScript) (asegúrese de que el código esté incluido en una sola línea sin saltos de línea)

      <%session("sessFirstName")=Request.Form("txtFirstName")%>
    • ASP (JavaScript) (asegúrese de que el código esté incluido en una sola línea sin saltos de línea)
      <%Session("sessFirstName")=String(Request.Form("txtFirstName"))%>
    • ColdFusion
      <cfset Session.sessFirstName = #Form.txtFirstName#>

      Para utilizar variables de sesión, ColdFusion también requiere que se cree un archivo de Application.cfm en la raíz del sitio, si es que su sitio no tiene uno ya asignado. El archivo Application.cfm debe contener el siguiente código:

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

      Nota : En sistemas Unix, los nombres de archivos distinguen entre mayúsculas y minúsculas. Asegúrese de que el nombre del archivo Application.cfm esté bien escrito con A mayúscula. Consulte la documentación de ColdFusion en busca de otras configuraciones de Application.cfm.
    • JSP (asegúrese de que el código está incluido en una sola línea sin saltos de línea)
      <%session.setAttribute("sessFirstName", request.getParameter("txtFirstName"));%>

      El código siguiente también funciona, pero se ha declarado en desuso en las últimas especificaciones de Java:

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

      Si se produce un error de PHP en el navegador en Windows, es posible que la instalación de PHP no tenga un directorio válido para guardar los datos de inicio de sesión. Este parámetro se denomina session.save_path en el archivo PHP.ini, así como el archivo de httpd.conf. La ubicación del directorio es opcional, pero la siguiente configuración funcionará:

      session.save_path = c:\php\sessiondata

      En función de su configuración de PHP, a veces es necesario activar manualmente la administración de sesión en todas las páginas relacionadas con la sesión. Coloque la siguiente línea de código en la parte superior de cada página:

      <?php session_start();?>

      en lugar de llamar a la función session_start () en cada página, puede hacer que PHP comience inicios de sesión automáticamente al encender la opción rotar session.auto_start en el archivo php.ini. Puede obtener más información sobre la configuración de PHP de la dirección de la sesión del usuario en Administración de sesión con PHP 4.
  5. Aún en la página, abra el panel Vinculaciones al elegir Ventana > vinculaciones. Desde el menú de signo más (+), seleccione una variable de sesión. En el cuadro de diálogo de variable de sesión, escriba “sessFirstName” (sin las comillas) en el campo nombre y haga clic en OK.
  6. Expanda el icono de la variable de sesión que aparecerá en el panel Vinculaciones. Arrastre el icono “sessFirstName” en la ventana de documento. El contenido de la variable de sesión se escribe en esta página.
  7. Abra la tercera página y repita los pasos 4 y 5. Una vez más, asegúrese de que la segunda página tenga un vínculo para la tercera página.
  8. Guarde, publique y pruebe las tres páginas. Si no obtiene los resultados esperados, compruebe las mayúsculas y la ortografía del elemento de formulario, la variable de sesión y la variable de la solicitud. El icono de inicio de sesión está ahora visible en el panel Vinculaciones para cada página en este sitio.

 

Cree una variable de sesión en ASP.NET

  1. Defina una página web de ASP.NET.
  2. Cree dos páginas dentro del sitio. La primera página contiene un formulario web ASP.NET que se establece de nuevo a sí mismo y luego redirecciona a la segunda página.

    Nota: El motivo por el que en este ejemplo se utilizan dos páginas es comprobar que una variable de sesión está disponible para una segunda, tercera, cuarta y subsiguiente página. Las Variables de petición, que son una alternativa a las variables de sesión, no pueden enviarse desde un formulario web ASP.NET en una página a una segunda página

  3. La primera página debe contener un formulario web ASP.NET que contenga un control de servidor <asp:textbox> y un control de servidor <asp:button>. Establezca el atributo “id” de control del cuadro de texto a “txtFirstName”. Se proporciona a continuación el código completo para la primera página. Elija C # o VB, según el idioma que ha elegido para su sitio de ASP.NET:

    Este código extrae el contenido del control de servidor <asp:textbox> denominado "txtFirstName." Crea una variable de sesión llamada “sessFirstName” que se establece de igual manera al contenido del control del servidor. Es decir, este código crea una variable de sesión que contiene la información que introduce el usuario en la página del formulario.

    • ASP.NET (VB) - Página 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#) - Página 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. En la segunda página, acceda a la vista código al seleccionar ver > Código e introduzca el código siguiente para escribir el contenido de la variable de sesión en la página. Una vez más, elija C# o VB, según el idioma que ha elegido para su sitio de ASP.NET:
    • ASP.NET (VB) - Página 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#) - Página 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. Guarde, publique y pruebe ambas páginas. Si no obtiene los resultados esperados, compruebe las mayúsculas y la ortografía de los controles del servidor, la variable de sesión y la variable de la solicitud.

Información adicional

Para obtener más detalles sobre las variables de sesión, consulte los siguientes artículos:

 

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea