| |||
![]() Familia, necesito saber como logro impedirle a usuarios conectarse al mismo tiempo con la misma cuenta, teniendo en cuenta todo el tema de que si está inactivo desloguearlo del sistema y de que si cierra el navegador eliminar su sesión. |
| ||||
Re: impedir 2 usuarios conectados con la misma cuenta Lo que podrias hacer es exactamente lo que planteas, entre muchas opciones mas claro esta, manejar un campo estado por ejemplo en tu tabla usuarios cuando el mismo se loguee se cambie a Activo y cuando se desloguee a Inactivo, entonces cuando compares los datos para el login del usuario verificas que el usuario con el password que ha digitado se encuentre en estado Inactivo para iniciar la sesión de lo contrario la cuenta esta en uso, la cuestión sería si el usuario cierra el navegador que la variable cambie de estado. mira este enlace Diferentes formas de cerrar sesion en PHP Saludos. |
| |||
Re: impedir 2 usuarios conectados con la misma cuenta estuve viendo la referencia que me diste; pero lo que no me queda claro en ese ejemplo que alli se pone es donde va cada sentencia, una dice que en el script php, que me imagino que se refiera a la página, dime si me equivoco y la otra en la capa de seguridad, realmente no tengo claro a que se refiere en cada uno de los casos ni que especificamente de ese codigo va en cada una. Cita: <? //si es necesario cambiar la config. del php.ini desde tu script ini_set("session.use_only_cookies","1"); ini_set("session.use_trans_sid","0"); //iniciamos la sesión session_name("loginUsuario"); session_start(); session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0); //cambiamos la duración a la cookie de la sesión //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.php"); } else { //sino, 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 >= 600) { //si pasaron 10 minutos o más session_destroy(); // destruyo la sesión header("Location: index.php"); //envío al usuario a la pag. de autenticación //sino, actualizo la fecha de la sesión }else { $_SESSION["ultimoAcceso"] = $ahora; } } ?> |