Foros del Web » Programando para Internet » PHP »

Problema con session

Estas en el tema de Problema con session en el foro de PHP en Foros del Web. Buenas chicos, pues tengo un problema y no logro resolver es con session. Quiero es contar las veces que el usuario se identifico mal y ...
  #1 (permalink)  
Antiguo 20/09/2011, 14:44
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 8 meses
Puntos: 13
Problema con session

Buenas chicos, pues tengo un problema y no logro resolver es con session. Quiero es contar las veces que el usuario se identifico mal y al llegar a 3 no permitirle identificarse por 15 minutos.

Código PHP:
Ver original
  1. private function check()
  2.     {
  3.         if (!isset($_SESSION['attempt']))
  4.         {
  5.             $_SESSION['attempt'] = 0;
  6.             return true;
  7.         }
  8.         else
  9.         {
  10.             $_SESSION['attempt']++;
  11.    
  12.             if ($_SESSION['attempt'] == 3)
  13.             {
  14.                 if (!isset($_SESSION['attempt_date']))
  15.                 {
  16.                     $_SESSION['attempt_date'] = strtotime(date('H:i:s'));
  17.                 }
  18.                 else
  19.                 {  
  20.                     if ($_SESSION['attempt_date'] >= strtotime(date('H:i:s'))-900)
  21.                     {
  22.                         $_SESSION['attempt'] = 0;
  23.                         return true;
  24.                     }
  25.                     else
  26.                     {
  27.                         return false;
  28.                     }
  29.                 }
  30.             }
  31.             else
  32.             {
  33.                 return true;
  34.             }
  35.         }
  36.     }

Pero no pasa de de aquí...

Código PHP:
Ver original
  1. if (!isset($_SESSION['attempt']))
  2.         {
  3.             $_SESSION['attempt'] = 0;
  4.             return true;
  5.         }

A ver si me pueden ayudar con el error, ante mano muchas gracias.
  #2 (permalink)  
Antiguo 20/09/2011, 14:46
Avatar de Physlet  
Fecha de Ingreso: octubre-2010
Ubicación: Panamá
Mensajes: 48
Antigüedad: 13 años, 5 meses
Puntos: 9
Respuesta: Problema con session

¿Comprobaste que estés llamando correctamente a la función session_start()? Es que me parece que en ningún momento inicias al manejo de sesiones.
  #3 (permalink)  
Antiguo 20/09/2011, 14:47
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 8 meses
Puntos: 13
Respuesta: Problema con session

Cita:
Iniciado por Physlet Ver Mensaje
¿Comprobaste que estés llamando correctamente a la función session_starts()? Es que me parece que en ningún momento inicias al manejo de sesiones.
Sí, arriba del código esta. Aquí todo completo:

Código PHP:
Ver original
  1. <php
  2.  
  3.  
  4. include('dbconnect.php');
  5.  
  6. class login
  7. {  
  8.     private function check()
  9.     {
  10.         if (!isset($_SESSION['attempt']))
  11.         {
  12.             $_SESSION['attempt'] = 0;
  13.             return true;
  14.         }
  15.         else
  16.         {
  17.             $_SESSION['attempt']++;
  18.    
  19.             if ($_SESSION['attempt'] == '3')
  20.             {
  21.                 if (!isset($_SESSION['attempt_date']))
  22.                 {
  23.                     $_SESSION['attempt_date'] = strtotime(date('H:i:s'));
  24.                 }
  25.                 else
  26.                 {  
  27.                     if ($_SESSION['attempt_date'] >= strtotime(date('H:i:s'))-900)
  28.                     {
  29.                         unset($_SESSION['attempt']);
  30.                         return true;
  31.                     }
  32.                     else
  33.                     {
  34.                         return false;
  35.                     }
  36.                 }
  37.             }
  38.             else
  39.             {
  40.                 return true;
  41.             }
  42.         }
  43.     }
  44.        
  45.     public function login_user()
  46.     {
  47.         $username = $_POST['username'];
  48.         $password = $_POST['password'];
  49.  
  50.         $login_query = sprintf('SELECT * FROM users WHERE username = "%s" AND password = MD5("%s")', mysql_real_escape_string($username), mysql_real_escape_string($password));
  51.  
  52.         if(@mysql_num_rows(@mysql_query($login_query)) <= 0)
  53.         {
  54.             session_destroy();
  55.             $this->check();
  56.         }
  57.         else
  58.         {
  59.             if (@mysql_result(@mysql_query('SELECT permise FROM users WHERE username = "'.$username.'"'), 0,0) == '1')
  60.             {
  61.                  $_SESSION['login_admin'] = true;
  62.             }
  63.             else
  64.             {
  65.                 $_SESSION['login_admin'] = false;
  66.             }
  67.            
  68.             $update_login = sprintf('UPDATE users SET date_last_login = "%s", ip_last_login = "%s" WHERE username = "%s"', date('Y-m-d H:i:s', time()), $_SERVER['REMOTE_ADDR'], mysql_real_escape_string($username));
  69.             @mysql_query($update_login);
  70.            
  71.             $_SESSION['login_status'] = true;
  72.             $_SESSION['login_username'] = $username;
  73.         }
  74.     }
  75.  
  76.     public function logout()
  77.     {
  78.         session_destroy();
  79.     }
  80. }
  81.  
  82. ?>
  #4 (permalink)  
Antiguo 20/09/2011, 14:51
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Problema con session

Podés agregar el código donde llama a esta clase? Seguro no estás haciendo algún unset() en otro lado?


Otra cosa, qué pasa si cuando restringe por 15 minutos, entro con otro navegador? No creo que sea recomendable manejar esto con sessiones, pero es solo un consejo...
  #5 (permalink)  
Antiguo 20/09/2011, 14:54
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 8 meses
Puntos: 13
Respuesta: Problema con session

Cita:
Iniciado por walterdevel Ver Mensaje
Podés agregar el código donde llama a esta clase? Seguro no estás haciendo algún unset() en otro lado?
Lo otro es solo un html rápido donde lo llamo, me di cuenta que tenia esto:

Código PHP:
 session_destroy();
 
$this->check(); 
Por eso borraba siempre session y tenia que crearlo de nuevo. Pero aun así no me funciona.

PD: Oh... no sabia pensado en eso, um... bueno, a ver si soluciono esto así (no soy de los que deja todo a la mitad) y trabajo mejor con IP.

Etiquetas: session, 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 18:07.