Foros del Web » Programando para Internet » ASP Clásico »

Cerrar variable de session

Estas en el tema de Cerrar variable de session en el foro de ASP Clásico en Foros del Web. Hola a todos. Es la primera vez que trabajaré con sessiones y resulta que no entiendo muy bien cómo cerrar una session.... tengo este ejemplo ...
  #1 (permalink)  
Antiguo 10/09/2010, 16:47
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Cerrar variable de session

Hola a todos. Es la primera vez que trabajaré con sessiones y resulta que no entiendo muy bien cómo cerrar una session.... tengo este ejemplo

Código:
<% 
'primero que nada, me fijo si la Session esta en True.
If Session("yaestube") = True then
	'si es True, mando este texto.
	Response. Write "Como vez, el texto es diferente, ya que la <B>Session</B> esta activa."
	'si NO es True, mando esto.
Else
	Response.Write "Hola... la variable de Session no existía, pero se acaba de crear"
	'Aqui creo la session. Asi la proxima vez se cumple el IF y se muestra el texto anterior.
	'Esta es la sintáxis para crear una Session.
	Session("yaestube") = True
End If
	
%>
<br /><br />
<form name="form1" action="pruebas1.asp" method="post">
    User Name : <input type="text" name="username">
    Password : <input type="password" name="userpwd">
    <input type="hidden" name="login" value="true">
    <input type="submit" value="Login">
</form>

<%Session.Abandon%>
en "pruebas1.asp" recibo y muestro los valores unicamente, lo que quiero con este ejemplo básico es aprender a cerrar la session cuando voy a la siguiente página.

ALguien que me pueda apoyar, Gracias de antemano....
  #2 (permalink)  
Antiguo 10/09/2010, 18:39
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 18 años, 4 meses
Puntos: 41
Respuesta: Cerrar variable de session

Pues tienes para elegir...

<%Session.Abandon%> para cerrar la sesion inmediatamente... como si hubiera caducado...
<%Session.Contents.RemoveAll()%> para borrar todas las variables de una sesion, si tienes una sesion con 20 variables de sesion, pues liberas todas...
<%Session.Contents.Remove("variable")%> para borrar esa variable de sesion en si...

Aunque cerrar una sesion para ir a la siguiente pagina no tiene mucho sentido el tener que usar variable de sesion, las variables de sesion se utilizan para que estas no se pierdan durante el trancurso de un tiempo (20 min por defecto) y para que esten presentes, por ejemplo, para tener un usuario activo despues de que se haya logueado en nuestro sitio...
__________________
Saludos, Jose

Paginas web y SEO
Anuncios por palabras
  #3 (permalink)  
Antiguo 13/09/2010, 10:08
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Cerrar variable de session

Pero, ¿cómo le hago para cerrar la session cuando doy click en mi botón de salir?

Este es el código de mi botón:

Código:
<form action="acceso.asp" method="post" />
	<center>
	<input type="submit" value="Salir"  /  class="botonp" /></center>
 </form >
  #4 (permalink)  
Antiguo 13/09/2010, 15:46
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 18 años, 4 meses
Puntos: 41
Respuesta: Cerrar variable de session

Para cerrar una sesion basta con borrar o eliminar la variable de sesion que controle esa sesion abierta, por ejemplo, si la variable de sesion es Session("valida") y esta tiene un valor True esta sesion dejara de existir cuando pasen 20 minutos (por defecto) o le añadas a la variables Nothing o "", y en el mismo archivo siempre debes hacer una comprobacion para decir si la session("valida") sigue valiendo True

Esto deberia ir en la 1ª linea del codigo donde sean paginas que obligatoriamente debieras estar logueado
<%if (Session("valida") = "") then Response.Redirect("pagina-principal.asp")%>

Tambien puedes crear un archivo seguridad.asp y que contenga la variable de sesion, ahi siempre haces las comprobaciones y la primera linea de los archivos involucrados metes.
<!--#include file="verificar.asp"--> asi te ahorras de si hubiera cambios tener que hacerlo en todos los archivos...

En el formulario, cuando le das a boton salir, debes enviarlo a un archivo ASP donde ahi la variable de sesion deberas cambiarla de True a Nothing o ""

¿¿Capichi??
__________________
Saludos, Jose

Paginas web y SEO
Anuncios por palabras
  #5 (permalink)  
Antiguo 13/09/2010, 15:52
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 10 meses
Puntos: 98
Respuesta: Cerrar variable de session

Cita:
Iniciado por JavierMMM Ver Mensaje
Pero, ¿cómo le hago para cerrar la session cuando doy click en mi botón de salir?

Este es el código de mi botón:

Código:
<form action="acceso.asp" method="post" />
	<center>
	<input name="salir" type="submit" value="Salir"  /  class="botonp" /></center>
 </form >


En acceso.asp o cualquier otro archivo donde viaje esta forma para abandoar la sesion, segun lo que ya te iindico Wasper:

Código ASP:
Ver original
  1. If len(request.form("Salir")) > 0 then
  2.   'Session.Abandon 'para cerrar la sesion inmediatamente... como si hubiera caducado...
  3.   'Session.Contents.RemoveAll() 'para borrar todas las variables de una sesion, si tienes una sesion con 20 variables de sesion, pues liberas todas...
  4.   'Session.Contents.Remove("variable") 'para borrar esa variable de sesion en si...
  5. end if


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 13/09/2010, 15:56
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Cerrar variable de session

Edité esta entrada, porque no terminé de leer correctamente tu respuesta Wasper.... Intentaré eso....

Y muchas gracias a ti también u_goldman....

Comenzaré a poner manos a la obra...
  #7 (permalink)  
Antiguo 13/09/2010, 16:16
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Cerrar variable de session

Cuando intento cerrar la Session me marca:


Categoria=Objeto Session
Codigo=ASP 0185

Descripcion=Falta propiedad Default
ASP Error (Descripcion)=Falta propiedad Default



Se resolvió poniendo "" en lugar de Nothing... pero mi gran problema viene cuando salgo y doy en la la barra de navegación el botón para regresar a la página anterior, vuelve a abrir la máquina anterior....

Este es el código que uso para cerrar la session:

Código:
<%
	Session("admin") = ""
	response.Redirect("acceso.asp")
%>

Última edición por JavierMMM; 13/09/2010 a las 16:28
  #8 (permalink)  
Antiguo 13/09/2010, 16:31
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 10 meses
Puntos: 98
Respuesta: Cerrar variable de session

Trata asi:

Session.Contents.Remove("admin")
Response.Redirect("acceso.asp")

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 13/09/2010, 16:52
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Cerrar variable de session

Gracias u_goldman, no me ha funcionado de la manera que me dices, pero una vez que regreso a esa página anterior [que es la página principal de cada usuario], cualquier link que quiero utilizar me manda a la pantalla de acceso, pero si me gustaría que no me regresara a mi página de agenda.

Este es el flujo

acceso.asp -> redireccion.asp -> agenda.asp [y cuando le doy salir me manda] -> cerrars.asp [y redirecciona a acceso. asp ... pero si le doy regresar en la barra de navegación, puedo regresar a agenda.asp]

Etiquetas: cerrar, session, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:17.