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

Finalizar Session

Estas en el tema de Finalizar Session en el foro de ASP Clásico en Foros del Web. Hola a tod@s, ma gustaria saber si hay alguna forma de redireccinar a otra pagina cuando acaba una session. Es decir, si el usuario permanece ...

  #1 (permalink)  
Antiguo 10/04/2002, 08:58
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Finalizar Session

Hola a tod@s,

ma gustaria saber si hay alguna forma de redireccinar a otra pagina cuando acaba una session. Es decir, si el usuario permanece inactivo durante 20 minutos (por defecto) al finalizar la session vuelva a cargarse la pagina principal automaticamente (sin utilizar ningun boton ni nada).

Gracias de antemano y saludos ;)
  #2 (permalink)  
Antiguo 10/04/2002, 09:04
Avatar de Aston  
Fecha de Ingreso: mayo-2001
Ubicación: Madrid
Mensajes: 933
Antigüedad: 24 años
Puntos: 0
Re: Finalizar Session

Hola Nax, esto es tan sencillo como esto:

Session("Permiso") = 1

If Session("Permiso") <> 1 Then
Response.Redirect "otrapagina.asp"
End If

Un saludo. :)

<a href="http://www.laventanita.net/" target="_blank">
<img src="http://www.breogan.org/images/Aston.gif" border="0" alt="La Ventanita.net - Lo imprescindible en la red"></a>
  #3 (permalink)  
Antiguo 10/04/2002, 09:15
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Lo que no entiendo es cuándo cambia el valor de esa variable, y si la tengo que poner en Session_OnEnd o donde???

Muchas gracias. ;)
  #4 (permalink)  
Antiguo 10/04/2002, 23:41
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 23 años, 2 meses
Puntos: 1
Re: Finalizar Session

en el global.asa pone esto:

&lt;SCRIPT LANGUAGE=VBScript RUNAT=Server&gt;
SUB Session_OnEnd
Response.Redirect(&quot;tefuiste.asp&quot;)
END SUB
&lt;/SCRIPT&gt;
significa que automaticamente a los 20' sin hacer nada el usuario lo manda a esa pagina.
Perooo..vas a tener que poner un timer para que refresque cada tanto, 1 minuto p.ej.

La otra como dice Aston, en el App_OnStart inicias una var Session(&quot;Activo&quot;)=1 y en el encabezado de cada pagina verificar si sigue estando en 1, sino significa que termino la sesion donde automaticamente se eliminan todas las variables de sesion.

se entiende?
  #5 (permalink)  
Antiguo 11/04/2002, 02:03
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Bien, ya lo entiendo.
Lo que no entiendo es por qué hay que utilizar un timer si se supone que Session_OnEnd se ejecuta cuando finaliza la sesion, ¿no?
  #6 (permalink)  
Antiguo 11/04/2002, 02:31
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 23 años, 2 meses
Puntos: 1
Re: Finalizar Session

Y claro, el que sabe que termino la sesion es el server, pero no la pagina del lado del cliente.
Deja una pagina mas de 20' y no se va a &quot;avivar&quot; que termino la sesion.
Para eso refrescas y verificas cada tanto con el timer.
Entendes ahora?
  #7 (permalink)  
Antiguo 11/04/2002, 04:56
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Gracias, entendido del todo!! ;)
Voy a hacer unas pruebas y os cuento que tal me ha ido.

Muchas gracias de verdad y saludos. ;)
  #8 (permalink)  
Antiguo 11/04/2002, 06:48
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Vuelvo con malas notocias. ¿Podriais corregir este codigo por favor?

global.asa:

Sub Session_onStart()
Session.Timeout = 3
End Sub

Sub Session_onEnd()
Response.Redirect(&quot;index.asp&quot;)
End Sub

articulo.asp:

&lt;meta http-equiv=&quot;refresh&quot; content=&quot;60&quot;&gt;

Con esto debería funcionar ¿no?
  #9 (permalink)  
Antiguo 15/04/2002, 02:25
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Si el codigo es correcto, ¿que es lo que falla?
  #10 (permalink)  
Antiguo 17/04/2002, 01:56
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

¿Es que no hay forma de solucionarlo?
Por favor...
  #11 (permalink)  
Antiguo 17/04/2002, 12:50
 
Fecha de Ingreso: febrero-2002
Mensajes: 56
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: Finalizar Session

Tranqui Nax, no te pongas así !
He estado leyendo estos mensajes y hay una cosa que Nochero no tiene en cuenta:
Él dice que pongas un timer así la pàg. se dará cuenta que la session finalizó, pero...
cómo puede finalizar la session si refrescamos la página cada minuto !!!

O sea, tu código está bien pero nunca se ejecuta sessionOnEnd entiendes ?

Es pura lógica...no crees Nochero ?
  #12 (permalink)  
Antiguo 19/04/2002, 06:43
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Entonces lo unico qye tengo que hacer es quitar el timer ¿no?

Lo pruebo y te cuento.

Porcierto, muchisimas gracias!!!!!!!!!!! ;)
  #13 (permalink)  
Antiguo 19/04/2002, 06:54
 
Fecha de Ingreso: febrero-2002
Mensajes: 56
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: Finalizar Session

NOOOOOOOOOOOOOOO !!! :(
Si quitas el timer la pág. no se dará cuenta de que termino lo session !!!!

Lo único que tienes que hacer es refrescar la pàg. cada 21 minutos por ejemplo. O sea refrescar la pág. una vez haya terminado la session, o sea pasados más de 20 minutos o 1200 segundos.
Si pones 1205 por ej. será casi exacto !

Lo pruebas y me dices algo vale ? ;)

  #14 (permalink)  
Antiguo 19/04/2002, 06:57
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Ahora mismo lo prubo y te cuento. :P
  #15 (permalink)  
Antiguo 19/04/2002, 07:11
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Genial!! Se da cuenta de que ha acabado la sesion, pero no me la redirecciona. Me aparece este error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e0c'

No se estableció ningún texto de comando para el objeto de comando.

Yo escribo lo siguiente:

Response.Redirect &quot;http://www.mipagina.com&quot;

¿Que te parece?
  #16 (permalink)  
Antiguo 19/04/2002, 20:22
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 23 años, 2 meses
Puntos: 1
Re: Finalizar Session

President, asi que luego de criticar mis recomendaciones bajandome el pulgar te montas sobre ellas y luego pretendes que Nax te de un aplauso basandote en mis erroneas ideas ?
Ademas preguntandole si &quot;He resuelto tu problema ?&quot; pero que problema le resolviste !? si lo unico que hiciste fue criticar la mia.
Ahora si quieres vanagloriarte solucionacelo pero mediante tus tan buenos conocimientos.
El hecho que te escriba de esta forma es porque puedo aceptar y reconocer errores de quien sea, ahora que me lo señalen tan soberbiamente como si tu fueras un experto de ninguna manera, y dado tus consultas realizadas al foro y consejos distas bastante de eso, pero lo peor de todo es que distas mas de ser un buen profesional.

Saludos !
  #17 (permalink)  
Antiguo 22/04/2002, 02:00
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

El caso es que sigo sin poder redireccinar la pagina, ¿me podriais dar una pista?

Siento que te hayas sentido ofendido Nochero, desde luego que no era mi intencion menospreciar tu ayuda. :)

Saludos, Nax.
  #18 (permalink)  
Antiguo 22/04/2002, 08:20
 
Fecha de Ingreso: febrero-2002
Mensajes: 56
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: Finalizar Session

Hola Nax !
El código te funciona bien pero lo que supongo que te pasa ahora es lo siguiente:

La redirección se hace correctamente. En la página a la que redireccionas hay código que utiliza una BBDD no ? Debes utilizar alguna variable de sessión para realizar la conexión y cómo la session ha finalizado te peta !
Es lógico !
Tienes que reinicializar las var de session necesarias para realizar la conexión en esta misma pàgina !
Haz y cuenta !
Si tengo tiempo lo provare yo mismo vale ?
;)
  #19 (permalink)  
Antiguo 22/04/2002, 13:50
 
Fecha de Ingreso: febrero-2002
Mensajes: 56
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: Finalizar Session

Para aclarar el malentendido:

1-asi que luego de criticar mis recomendaciones bajandome el pulgar
Yo sólo puse el icono para poner de forma divertida que no entendía cómo se podía acabar una session si la pág. se refresca cada minuto. Aún no veo la manera así que si tu la sabes te agradecería la compartieses con nosotros.

2-pretendes que Nax te de un aplauso...
Yo sólo pretendía ayudar a Nax así como muchos otros me han ayudado a mi...

3-He resuelto tu problema
Tienes toda la razón, me equivoqué. Los problemas se plantean y se solucionan entre todos los foreros. Voy a ver si puedo editar el mensaje y arreglarlo...
De todas maneras no encuentro normal que por un error sintáctico te pongas de esta manera pero bueno...

4-Si lo unico que hiciste fue criticar la mia
Es que me parece que tu idea es correcta pero no así el tiempo de refresco del timer (que creo ha de ser superior a 20 minutos).
Pero es una critica constructiva para si puedo, completar tu opinión, nada más.

5-dado tus consultas realizadas distas bastante de de ser un experto
Claro que disto, y mucho! Por eso participo en el foro, porque quiero aprender de todos vosotros, acaso no es para eso el foro?
(No entiendo porque me dices esto, de verdad)

6-Lo peor de todo es que distas más de ser un buen profesional.
Pero Nochero yo que te he hecho para que me menosprecies de esta manera? Supongo que en éste foro los que no son profesionales del ASP también pueden opinar no? Si una opinión te parece equivocada por favor corrígela, critica mis razones pero te ruego que sin faltar al respeto.

Nada más, sólo comentarte que tu mensaje me causó sorpresa y un gran pesar ya que yo en ningún momento quise ofenderte. De todas maneras te pido disculpas si mis opiniones te han molestado y espero olvides éste malentendido.

Disculpas a todos los foreros por extenderme y pido al moderador que conserve éste mensaje como ha hecho con el de Nochero. Gracias !
  #20 (permalink)  
Antiguo 23/04/2002, 02:00
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Bueno pues os cuento como va el tema:

sigo sin poder redireccionar la pagina y la pagina a la que redirecciono no hace ninguna conexion a una BD. El error descrito anteriormente me da cuando acaba la sesion, y vuelve a intentar cargar la pagina donde hago el refresh. Por lo tanto no pasa por el Session_onEnd ¿no?

Me da que esto esta empezando a no tener ni pizca de logica!!!
  #21 (permalink)  
Antiguo 23/04/2002, 02:43
Avatar de TomaHawkk  
Fecha de Ingreso: diciembre-2001
Ubicación: España
Mensajes: 422
Antigüedad: 23 años, 5 meses
Puntos: 1
Re: Finalizar Session

En lugar de hacer el Redirect en el Session_OnEnd puedes comprobar una variable de sesión al refrescar la página, si ésta estuviera vacía, la redireccionas a la página que quieras.

Al comienzo de la página, como bien dijo Aston...

&lt;%

Response.Buffer = True

If session(&quot;permiso&quot;) &lt;&gt; 1 Then
response.redirect &quot;tupagina.asp&quot;
End if

%&gt;

Creo que esto es lo más sencillo;)

Saludos.
  #22 (permalink)  
Antiguo 23/04/2002, 02:59
 
Fecha de Ingreso: febrero-2002
Mensajes: 56
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: Finalizar Session

Cómo dicen Aston y TomaHawk, ya tienes inicilizada la variable de session en el global.asa y despúés la compruebas en cada página de tu aplicación:

O sea, en el gloabal.asa:
Session(&quot;Permiso&quot;) = 1

En el comienzo cada página asp que tengas:
If Session(&quot;Permiso&quot;) &lt;&gt; 1 Then
Response.Redirect &quot;otrapagina.asp&quot;
End If


Pero con esto el redireccionamiento no se haría automáticamente sino que se haría cuando nosotros refrescaramos la página. Lo que has de añadir cómo bien dijo Nochero es un timer (con un tiempo un poco superior a 20 minutos) que refresque la pàgina automáticamente.

Si lo tienes así y no te funciona no lo entiendo... :(

  #23 (permalink)  
Antiguo 24/04/2002, 02:09
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Os pongo el codigo, porque no se si es que no entiento o no me da la cabeza o que, pero no me hace ni caso:

GLOBAL.ASA

&lt;SCRIPT LANGUAGE=&quot;VBScript&quot; RUNAT=&quot;Server&quot;&gt;

Sub Session_onStart()
Session.Timeout = 3
Session(&quot;Redireccionar&quot;) = 1
End Sub

Sub Session_onEnd()
Set Session(&quot;Redireccionar&quot;) = 0
End Sub

&lt;/SCRIPT&gt;

INDEX.ASP

&lt;%
Response.Buffer = True
If Session(&quot;Birbideratu&quot;) &lt;&gt; 1 Then
%&gt;&lt;script language=javascript&gt;alert('&lt;%=Session(&quot; Redireccionar&quot;)%&gt;');&lt;/script&gt;&lt;%
Response.Redirect &quot;idioma.asp&quot;
End If
%&gt;
.
.
.
.
&lt;meta http-equiv=&quot;refresh&quot; content=&quot;250&quot;&gt;

Yo creo que esta bien ¿no? :(
  #24 (permalink)  
Antiguo 24/04/2002, 10:12
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Finalizar Session

hola:

Soy un pequeño saltamontes del asp, pero observe algo en el código.

GLOBAL.ASA

&lt;SCRIPT LANGUAGE=&quot;VBScript&quot; RUNAT=&quot;Server&quot;&gt;

Sub Session_onEnd()
Set Session(&quot;Redireccionar&quot;) = 0
End Sub

&lt;/SCRIPT&gt;



Set Session(&quot;Redireccionar&quot;) = 0

me parece.. digo yo.. quizas.. este incorrecta la instrucción. No deberia
usarse SET, simplemente.

Session(&quot;Redireccionar&quot;) = 0

Si esta mal lo que observe.. sorry
yo decia...

bye
  #25 (permalink)  
Antiguo 24/04/2002, 10:26
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Gracias por tu aportacion, la he probado y sigue sin funcionar...

Muchas gracias, lo seguire intentando. :(
  #26 (permalink)  
Antiguo 24/04/2002, 12:53
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Finalizar Session

Hola otra vez:

mi ultima aportación es recomendarte que hagas lo siguiente:

GLOBAL.ASA

&lt;SCRIPT LANGUAGE=&quot;VBScript&quot; RUNAT=&quot;Server&quot;&gt;

Sub Session_onStart()
Session.Timeout = 3
Session(&quot;Redireccionar&quot;) = 1
End Sub

Sub Session_onEnd()
Session(&quot;Redireccionar&quot;) = &quot;0&quot;
End Sub

&lt;/SCRIPT&gt;

INDEX.ASP

&lt;%
Response.Buffer = True

If Session(&quot;Redireccionar&quot;) =&quot;&quot; Then
Response.Redirect &quot;chau.asp&quot;
End If

%&gt;

a ver intenta esto..
si no sale, please mandame el global.asa
la pagina de inicio y cualquier otra pagina.

saludos.


  #27 (permalink)  
Antiguo 24/04/2002, 12:56
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Finalizar Session

Correccion.. esta es la recomendacion

Hola otra vez:

mi ultima aportación es recomendarte que hagas lo siguiente:

GLOBAL.ASA

&lt;SCRIPT LANGUAGE=&quot;VBScript&quot; RUNAT=&quot;Server&quot;&gt;

Sub Session_onStart()
Session(&quot;Redireccionar&quot;) = &quot;1&quot;
End Sub

&lt;/SCRIPT&gt;

INDEX.ASP

&lt;%
Response.Buffer = True

If Session(&quot;Redireccionar&quot;) =&quot;&quot; Then
Response.Redirect &quot;chau.asp&quot;
End If

%&gt;

a ver intenta esto..
si no sale, please mandame el global.asa
la pagina de inicio y cualquier otra pagina.

saludos.


  #28 (permalink)  
Antiguo 26/04/2002, 02:19
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Estoy haciendo varias pruebas:

he utilizado un alert para que me devuelva el valor de la variable session y el valor es 1 en todo momento. Hasta cuando termina la sision sigue siendo 1 el valor. Es qeu no pasa por el Session_onEnd???

Como puedo comprobarlo??

Saludos y muchas gracias.
  #29 (permalink)  
Antiguo 26/04/2002, 06:35
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Finalizar Session

Muchas gracias a todos!!!!!

Lo hemos conseguido por fin!!! ;)

Asi ha quedado el codigo:

GLOBAL.ASA

Sub Session_onStart()
Session.Timeout = 20
Session(&quot;Redirec&quot;) = &quot;1&quot;
End Sub

Sub Session_onEnd()
Set Session(&quot;Redirec&quot;) = Nothing
End Sub

INDEX.ASP

&lt;%
Redireccion = Session(&quot;Redirec&quot;)
If Redireccion = &quot;&quot; Then
Response.Redirect &quot;idioma.asp&quot;
End If
%&gt;

No se si tiene alguna logica lo de pasar el contenido del session a una variable, pero de esta forma y quitando &quot;Response.Buffer = True&quot; ha funcionado. Para que sirve entonces el &quot;Response.Buffer = True&quot; ??

Saludos y muchas gracias a todos de nuevo!!!!!
  #30 (permalink)  
Antiguo 26/04/2002, 08:17
 
Fecha de Ingreso: febrero-2002
Mensajes: 56
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: Finalizar Session

Hola!
Al final has puesto lo del refresh o no ?

Porque sin refrescar cómo se da cuenta la página de que se ha acabado la session ?

Saludos !
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




La zona horaria es GMT -6. Ahora son las 15:22.