Foros del Web » Programando para Internet » PHP »

impedir 2 usuarios conectados con la misma cuenta

Estas en el tema de impedir 2 usuarios conectados con la misma cuenta en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/05/2008, 07:52
 
Fecha de Ingreso: marzo-2008
Mensajes: 128
Antigüedad: 16 años, 1 mes
Puntos: 0
De acuerdo impedir 2 usuarios conectados con la misma cuenta

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.
  #2 (permalink)  
Antiguo 02/05/2008, 08:30
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
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.
  #3 (permalink)  
Antiguo 02/05/2008, 12:55
 
Fecha de Ingreso: marzo-2008
Mensajes: 128
Antigüedad: 16 años, 1 mes
Puntos: 0
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;
}
}
?>
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 12:44.