Foros del Web » Programando para Internet » PHP »

Control de Expiracion de Sesiones

Estas en el tema de Control de Expiracion de Sesiones en el foro de PHP en Foros del Web. Saludos a Todos: Veran, tengo un pequeño problema con una parte que debo de escribir, y es la de controlar el tiempo de duracion de ...
  #1 (permalink)  
Antiguo 25/08/2010, 15:11
 
Fecha de Ingreso: mayo-2010
Mensajes: 21
Antigüedad: 13 años, 11 meses
Puntos: 0
Control de Expiracion de Sesiones

Saludos a Todos:


Veran, tengo un pequeño problema con una parte que debo de escribir, y es la de controlar el tiempo de duracion de una sesion para cada usuario que se conecte a mi sistema. He modificado el session.gc_maxlifetime De modo que solo me permita un tiempo maximo de 300s (5min). No se que ha pasado, pero no ha servido. Aunque el punto exacto de mi problema es que quiero que saque un Mensaje al vencerse dicho tiempo, y automaticamente redireccionar al usuario al index.php (Loggeo).
Estoy un poco perdido en ese sentido, alguien me podria dar una mano?

Este es el codigo que uso actualmente en mi index.php

Código PHP:
Ver original
  1. <?php
  2.   include ("class\BD.php");
  3.   if (isset($_POST['Acceder']))
  4.   {
  5.     $Conn = new BD();
  6.     $Usu = $_POST['txtUser'];
  7.     $Contra = $_POST['txtPass'];
  8.     $Query = "SELECT Cod_Cuenta FROM Cuentas WHERE Nombre_Usuario='$Usu' AND Contrasena=MD5('$Contra')";
  9.     $Conn->Query($Query);
  10.     $Estado = $Conn->NumFilasConsulta();
  11.     if ($Estado == 1)
  12.     {
  13.       session_start();
  14.       $_SESSION['usuario'] = $Usu;
  15.       echo '<script>alert("Bienvenido "'.$Usu.'" A La Web!")</script>';
  16.       header ('location: menu.php');
  17.     }
  18.     else
  19.     {
  20.       echo '<script>alert("Datos Incorrectos, Por Favor, Intentelo de Nuevo");</script>';
  21.       header ('location: index.php');
  22.       exit();
  23.     }
  24.   }
  25. ?>

Y funciona bien (Excepto los mensajes de Error en Javascript), Tenia entendido que antes y/o despues de una redireccion los mensajes no surten efecto, alguien tambien me podria aclarar esto.

Muchisimas Gracias y Me Disculpan la Molestia!
  #2 (permalink)  
Antiguo 25/08/2010, 21:03
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Control de Expiracion de Sesiones

bueno yo trabajo el logeuo con sesiones tambien y en codigos q fui viendo me invente esta funcion para sacar al usuario al tiempo determinado si te sirve usala o modificala o mejorala a tu manera suerte
Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. function seguridad($tiempo_inactivo=5){
  5.  
  6.     if(is_numeric($tiempo_inactivo)){
  7.  
  8.         ### verificamos q el usuario este auntentificado ###       
  9.  
  10.         if($_SESSION['user_auten']=="usuario_ingresado"){
  11.  
  12.             $fecha=date("H:i:s d-m-Y ",mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y")));
  13.  
  14.             if($_SESSION["fecha_com"]==""){
  15.  
  16.                 $fecha_com=date("H:i:s d-m-Y ",mktime(date("H"),date("i")+$tiempo_inactivo,date("s"),date("m"),date("d"),date("Y")));
  17.  
  18.                 $_SESSION["fecha_com"]=$fecha_com;
  19.  
  20.             }
  21.  
  22.             else{
  23.  
  24.                 if($fecha>$_SESSION["fecha_com"]){
  25.  
  26.                     session_destroy();
  27.  
  28.                     header("location:index.php");#pagina a donde redireccionara si esta inactivo
  29.  
  30.                     exit;
  31.  
  32.                 }
  33.  
  34.                 else{                  
  35.  
  36.                     $fecha_com=date("H:i:s d-m-Y ",mktime(date("H"),date("i")+$tiempo_inactivo,date("s"),date("m"),date("d"),date("Y")));
  37.  
  38.                     $_SESSION["fecha_com"]=$fecha_com;
  39.  
  40.                 }                  
  41.  
  42.             }          
  43.  
  44.         }
  45.  
  46.         else{
  47.  
  48.             header("location:index.php");#pagina a donde redireccionara sino esta auntentificado
  49.  
  50.             exit;
  51.  
  52.         }          
  53.  
  54.     }
  55.     else{
  56.         echo "el parametro debe de ser numerico";
  57.     }          
  58.  
  59. }
  60.  
  61. seguridad();       
  62.  
  63. ?>
espero te sea de ayuda suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: sesiones_en_php
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 08:02.