Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/06/2015, 11:15
Avatar de Apolo_13
Apolo_13
 
Fecha de Ingreso: mayo-2015
Mensajes: 40
Antigüedad: 9 años
Puntos: 4
Respuesta: como crear verificador de acceso de usuarios

Hola, pinta muy interesante tu problema. me uno a la causa jaja.

mira, mas o menos esto podria ser una posible solución. faltan los metodos que esa parte te toca a ti.
Código PHP:
Ver original
  1. <?php
  2.         //sacar de la bd
  3.         if (usuarioExiste()):
  4.             $registros;
  5.             //$registros = cursor; la variable registros almacenara todas las filas de una consulta para una ip en concreto. Osea el resultado del select
  6.             //agregarBD(ip -- idUser -- horaDeInicio);
  7.             //tienes que tener una tabla con los campos: ip -- id_usuario -- horaDeInicio (cuando accede con ese usuario)
  8.             agregarBD($ip,$idUser,$horaIni);
  9.             //si han pasado menos de 24 horas y el numero de registros es menor a 5
  10.             if(isMenosDe24h($registros) && isRegistrosMenorA6()):
  11.                 iniciarAcceso();
  12.             else:
  13.                 //si han pasado mas de 24h borrarmos sus registros de la BD y acede al sistema
  14.                 if(!isMenosDe24h(registros)):
  15.                     borrarRegistrosBD();
  16.                     iniciarAcceso();
  17.                 else:
  18.                     //en cualquier otro caso lo enviamos u una pagina de acceso denegado
  19.                     header("Location: accesoDenegado.php");
  20.                 endif;
  21.             endif;
  22.         else:
  23.             print "no existe el usuario";
  24.         endif;
  25.         ?>

explicacion de metodos:
------------------------------
usuarioExiste() : boolean --> se hace un select con el user y el password introducion en el form del html, y si te devuelve una fila, tienes que devolver true, en caso contrario lo contrario, osea false :p

agregarBD() : void --> insertar los 3 parametros, la ip, el id del user y la hora de inicio(la hora en el momento en el que se logea). Esos params en una tabla que solo tenga esas 3 columns.


ojo, aqui viene lo mas importante
isMenosDe24h() : boolean --> con la variable registros la recorres y te quedas con la primera hora del primer acceso de ese usuario. Y luego comparas esa fecha con la hora del sistema y si han pasado menos de 24 hr devolvera true, caso contrario false.

isRegistrosMenorA6() : boolean--> simplemente haces un select de los id del users para la ip en concreto. Lo haces con un distinct. ejemp: "select distinct idUser where ip = '{$ip}'". Luego cuentas el numero de registros, p.ejemp con mysql_num_rows(). y si es menor a 6 true sino false.

iniciarAcceso() : void --> aqui implementas la logica que quieras para acceder al sistema.

borrarRegistrosBD() --> borrar los registros en la tabla para la ip en concreto.


p.d: seguramente hayan mas formas y mas eficientes, pero a priori es lo que se me ocurre.

Saludos!
__________________
¿Buscas respuestas? eemmmmm.....¡Abstrae tu mente!

Última edición por Apolo_13; 19/06/2015 a las 11:25