PHP - Cierre de sesión por inactividad en PHP

 
Vista:

Cierre de sesión por inactividad en PHP

Publicado por Alvaro (18 intervenciones) el 24/12/2012 16:27:17
hola, una consulta, tengo un problema sobre un cierre de sesion en PHP, lo que sucede es que actualmente tengo el sgte codigo que destruye una sesion despues de 15 min:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
 $hora =  $_SESSION["ultimoAcceso_mc"];
   $ahora = date("Y-n-j H:i:s");
    $tiempo_transcurrido = (strtotime($ahora)-strtotime($hora));
 
    //comparamos el tiempo transcurrido 
     if($tiempo_transcurrido >= 900) {
 
       // destruyo la sesión 
      unset($_SESSION);
      header("Location:../login.php"); //envío al usuario a la pag. de autenticación 
      //sino, actualizo la fecha de la sesión 
   } else {
    $_SESSION["ultimoAcceso_mc"] = $ahora;
   }
?>

ahora, lo que quisiera es que, si el usuario no uso la pagina en 15 min, la sesion se destruya, es decir Cierre de sesión por inactividad.

quedo a la espera de su apoyo......Gracias..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Cierre de sesión por inactividad en PHP

Publicado por xve (6935 intervenciones) el 25/12/2012 09:10:49
Hola Alvaro, no te entiendo muy bien, nos dices que tienes un código para cerrar la sesión si no se utiliza en 15 minutos, y no solicitas como hacerlo??

Nos puedes comentar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cierre de sesión por inactividad en PHP

Publicado por Alexis Ochoa (92 intervenciones) el 26/12/2012 02:54:50
Creo que el se refiere es a destruir la sesión si no se realiza ninguna acción. Actualmente, algunos portales de instituciones financieras poseen este mecanismo.

Si tu código lo tienes en un archivo único, por ejemplo: "destruye_sesion.php", lo que podrías hacer es crear un evento onload que haga un redireccionamiento a "destruye_sesion.php" a los 15 min.

1
2
3
4
5
6
7
<script>
window.onload = function(){killerSession();}
 
function killerSession(){
setTimeout("window.open('destruye_sesion.php','_top');",900000);
}
</script>


Si no es esto lo que necesitas, avisanos y explicanos un poco mejor

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Cierre de sesión por inactividad en PHP

Publicado por Alvaro (18 intervenciones) el 26/12/2012 14:06:59
gracias por las respuestas, efectivamente como dice alexis, cuando no se realiza ninguna accion, es cuando debe destruirse la sesion para volver a logearse, sin embargo, lo que me comentas del evento "destruye_sesion.php" no te entendi muy bien, en donde debo declarar el script? y que es lo que debe haber en el archivo "destruye_sesion"?

gracias por el apoyo....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Cierre de sesión por inactividad en PHP

Publicado por xve (6935 intervenciones) el 26/12/2012 18:51:18
Según entiendo, en ese archivo tienes que eliminar las variables de sesión:
1
2
3
<?php
$_SESSION["ultimoAcceso_mc"]="";
?>


Tu dirás Alexis si lo he indicado correctamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cierre de sesión por inactividad en PHP

Publicado por Alvaro (18 intervenciones) el 02/01/2013 16:26:07
estimados....estoy tratando de realizar lo que ustedes mencionan lineas arriba, sin embargo aun persiste el inconveniente de que se cierra sesion en 15 min, asi la web se este usando o no.
habra alguna otra manera de poder realizar un cierre de sesion si el usuario no utiliza la web en un tiempo maximo de 15 min..??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cierre de sesión por inactividad en PHP

Publicado por Eliu Hernandez (1 intervención) el 20/07/2017 04:51:03
pero tengo una duda.. esa funcion se ejecutará a los 15min transcurridos sin que nada la detenga... lo que veo que se complica es reinicar el contador si en dado caso se ejecuta una funcion ya sea DOM o una funcion PHP...

que me aconsejas?.

necesito generar ese algoritmo para mi sistema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cierre de sesión por inactividad en PHP

Publicado por Rafael Machado (1 intervención) el 09/11/2017 03:01:15

Me funciono su codigo amigo, solo que yo llamo mi archivo de cerrar sesion y me sale muy bien y automatico.



Mi codigo de cerrar sesion es:



Se llama: desconectar.php



1
2
3
4
5
6
7
8
9
10
<?php
session_start();
if($_SESSION['user']){
	session_destroy();
	header("location: ../index.php");
}
else{
	header("location: ../index.php");
}
?>

el index.php es mi login




Lo llamo en el scrip ya en cada formulario usando el codigo del amigo Alexis Ochoa



1
2
3
4
5
6
7
8
<!-- destruccion  -->
<script>
window.onload = function(){killerSession();}
function killerSession(){
setTimeout("window.open('../conexion/desconectar.php','_top');",60000);
}
</script>
<!-- destruccion  -->

donde esta el 60000 es el tiempo cuando se actualizara el formulario en mili segundos osea
formula ((minutos x 60) x 1000) = mili segundos

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cierre de sesión por inactividad en PHP

Publicado por Alexis Ochoa (92 intervenciones) el 04/01/2013 04:01:43
Disculpen por la tardanza, no estuve ni cerca de un pc en estos días festivos.

Efectivamente xve, eso es lo que se debe hacer (O al menos es una de las acciones que se pueden ejecutar). En este link podrás ver lo que el quiere hacer y así entender la idea.

http://www.bancomercantil.com/mercprod/site/personas/00_home_personas.htm (A la derecha hay una imagen que dice "Mercantil en línea Personas", al hacer click en "Entrar" se levanta un pop up pidiendo login y password, espera un minuto y verás)

Alvaro, la función en javascript que te pasé realiza esa misma acción a los 15 minutos. La lógica que se aplica es: Si no hay una carga de página en 15 minutos, redirecciona a "destruye_sesion.php". Este archivo podría tener

1
2
3
4
<?php
$_SESSION["ultimoAcceso_mc"]="";
header("Location: login.html");
?>


Donde login.html es tu página de login y password.

Ahora ¿Donde cargar esa función javascript? Pues, en todas las vistas html o php en las que desees validar el tiempo de inactividad del usuario

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Cierre de sesión por inactividad en PHP

Publicado por lalouu (1 intervención) el 25/02/2014 21:26:40
ojala alguien responda aun este post
alexis, en el script en la linea de setTimeout al final el numero 900000 es el que marca los segundos que tomara en cuenta sin recargar la pagina, no se si me explico
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cierre de sesión por inactividad en PHP

Publicado por luis (1 intervención) el 04/08/2015 22:20:25
gracias Alexis funciona perfecto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de humberto

Cierre de sesión por inactividad en PHP

Publicado por humberto (42 intervenciones) el 09/11/2015 23:51:29
Amigo Luis puedes montar el código completo por favor.....para ver cómo te quedo con ayuda de Alexis. Gracias de ate mano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar