Foros del Web » Programando para Internet » PHP »

cuando un usuario abandona una pagina

Estas en el tema de cuando un usuario abandona una pagina en el foro de PHP en Foros del Web. Hola muy buenas me gustaria saber cuando un usuario abandono la pagina para si poder destruir la session. Vamos en resumen como puedo hacer cuando ...
  #1 (permalink)  
Antiguo 07/10/2011, 03:34
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 19 años, 7 meses
Puntos: 3
cuando un usuario abandona una pagina

Hola muy buenas me gustaria saber cuando un usuario abandono la pagina para si poder destruir la session.
Vamos en resumen como puedo hacer cuando un usuario entra en una pagina y muestre una imagen en concreto, y ya no le salga mas mientras esta navengando por la pagina, pero si sale y vuelve a entrar que le vuelva a salir.


Un saludo y gracias
  #2 (permalink)  
Antiguo 07/10/2011, 07:39
Avatar de bbriones89  
Fecha de Ingreso: marzo-2011
Ubicación: RENCA
Mensajes: 26
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: cuando un usuario abandona una pagina

ejej...existen muchas soluciones..a mi se me ocurre que cuando inicie sesion puedes guardar en una tabla temporal el ID del usuario, entonces antes de mostrar la imagen haces una pequeña consulta q vea si esta o no el ID en dicha tabla, si esta no la muestra y si no, pues se la muestras. cuando el usuario cierre sesion haces otra consulta en la q vas a esta tabla y borras el ID del usuario. LISTO.
  #3 (permalink)  
Antiguo 07/10/2011, 08:03
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 19 años, 7 meses
Puntos: 3
Respuesta: cuando un usuario abandona una pagina

El problema es que usuario, no esta registrado. Entonces para eliminar el id de usuario tengo que saber cuando abandona la pagina. Ese es el problema como puedo saber si el usuario abandona la pagina tanto para eliminarlo de la tabla como para destruir la session??
  #4 (permalink)  
Antiguo 07/10/2011, 08:09
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: cuando un usuario abandona una pagina

algo difícil, he intentado eso con javascript, precisamente el objeto history, y nada :(

Sólo se me ocurre que le des un tiempo de expiración a la sesión, si no hay actividad, que elimine todo con session_destroy y/o session_unset.

Esto último lo usé como solución cuando el usuario no cierre bien su sesión y en lugar de eso cierre el navegador, aunque no se si sea correcta. Por lo menos se elimina la sesión después de cierto tiempo de inactividad en el sitio protegido.

Suerte
  #5 (permalink)  
Antiguo 07/10/2011, 10:20
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: cuando un usuario abandona una pagina

Cita:
Iniciado por venom_mau Ver Mensaje
algo difícil, he intentado eso con javascript, precisamente el objeto history, y nada :(

Sólo se me ocurre que le des un tiempo de expiración a la sesión, si no hay actividad, que elimine todo con session_destroy y/o session_unset.

Esto último lo usé como solución cuando el usuario no cierre bien su sesión y en lugar de eso cierre el navegador, aunque no se si sea correcta. Por lo menos se elimina la sesión después de cierto tiempo de inactividad en el sitio protegido.

Suerte
me puedes decir como hago eso? como creo una session q dure un tiempo determinado??? pprq tengo usuarios q entran ami web y no cierran si no q se salen (cerrando el navegador) :@
  #6 (permalink)  
Antiguo 07/10/2011, 10:50
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: cuando un usuario abandona una pagina

Ya intentaste usando cookies?

http://php.net/manual/es/function.setcookie.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 07/10/2011, 12:39
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: cuando un usuario abandona una pagina

Cita:
Iniciado por JuJoGuAl Ver Mensaje
me puedes decir como hago eso? como creo una session q dure un tiempo determinado??? pprq tengo usuarios q entran ami web y no cierran si no q se salen (cerrando el navegador) :@
Si es sarcasmo no te digo
  #8 (permalink)  
Antiguo 07/10/2011, 12:47
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: cuando un usuario abandona una pagina

jajajajja no dime porq yo uso sessiones el problema q al cerrar el navegador no se borran permanecen
entonces coloque un boton SALIR pero aun asi cierran el navegador

entonces quier hacer q al pasar que se yo unos 5mins borre la session porq no puedo permitir que quede abierta.. o al menos que haya una forma q borre las session al cerrar el navegador (que deberia de hacerlo solo no?)
  #9 (permalink)  
Antiguo 07/10/2011, 13:05
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: cuando un usuario abandona una pagina

Bueno, sirve que alguien se da una vuelta y mejora el script o me regaña porque es mala práctica

Y ya no recuerdo si lo hice o sólo lo ocupé y modifiqué para mi necesidad, si se parece al código de alguien, pues disculpa, pero que bien me funcionó

Este script lo llamo a cada página de mi sitio asegurado con la función include

Código PHP:

<?
   
//iniciamos la sesión

   
session_name("usuario");
   
$variable=$_SESSION['usuario'];
   
session_start();

   
//antes de hacer los cálculos, compruebo que el usuario está logueado
   //utilizamos el mismo script que antes

   
if ($_SESSION['autentificado'] != "SI") {

       
//si no está logueado lo envío a la página de autentificación

       
header("Location: index.html");
   } else {

       
//si no, calculamos el tiempo transcurrido

       
$fechaGuardada $_SESSION['ultimoAcceso'];
       
$ahora date("Y-n-j H:i:s");
       
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));

       
//comparamos el tiempo transcurrido

        
if($tiempo_transcurrido >= 1200) {

        
//si pasaron x minutos 

       //aquí tenía una conexión y actualización a bd pero es a gusto del programador
       
session_unset();
       
session_destroy();  
           
header("Location: index.html"); //envío al usuario al indice

         //sino, actualizo la fecha de la sesión
       
}else {

          
$_SESSION['ultimoAcceso'] = $ahora;
       }
   }
?>
Ahora si se fijan estoy estableciendo 1200 segundos de inactividad para que destruya la sesión.

Investigué algo acerca de esto, pregunté en este foro en el apartado de js pero no encontré la solución definitiva para borrar datos de sesiones no cerradas correctamente, incluso me topé con la configuración del archivo php.ini, pero no sirve si usas un servidor que no es tuyo, ahí tendrías que tener contacto con un administrador...

Suerte y adelante para usarlo o modificarlo o criticarlo.
  #10 (permalink)  
Antiguo 07/10/2011, 13:15
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: cuando un usuario abandona una pagina

Bueno pero no veo donde ejecutar ese archivo??? eso seria ejecutandolo cada vez que se intenta acceder a unas de las paginas???
  #11 (permalink)  
Antiguo 07/10/2011, 13:27
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: cuando un usuario abandona una pagina

ya no pude editar unos errores que tiene :P

Pero sí JuJoGuAl lo llamas a cada una de las páginas que compone tu sitio seguro con la función include, este archivo se ejecuta cada vez que el usuario accesa a una página segura o con sesión y si deja de trabajar por 1200 seg. en este caso, se cierra la sesión...
  #12 (permalink)  
Antiguo 07/10/2011, 13:33
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: cuando un usuario abandona una pagina

Cita:
Iniciado por venom_mau Ver Mensaje
ya no pude editar unos errores que tiene :P

Pero sí JuJoGuAl lo llamas a cada una de las páginas que compone tu sitio seguro con la función include, este archivo se ejecuta cada vez que el usuario accesa a una página segura o con sesión y si deja de trabajar por 1200 seg. en este caso, se cierra la sesión...
Bueno errores a simple vista no le veo pero tomare ese script haber si soluciono mi problema... gracias papa por la ayuda...


Etiquetas: usuarios
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 19:25.