Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/06/2012, 03:33
Julio1421
 
Fecha de Ingreso: mayo-2012
Ubicación: Sevilla
Mensajes: 11
Antigüedad: 12 años
Puntos: 1
Evitar multisesion

Buenas a todos!

Estoy intentando implementar en mi proyecto, un sistema para que un usuario registrado en la BD, solo pueda estar conectado una sola vez con esas credenciales.

He estado mirando, y lo que me interesaria es que cuando un usuario esta logeado, por ejemplo con user=root pass=root, si otro se intenta logear con las mismas credenciales, este ultimo se logee y elimine la sesion del anterior.

Tengo una bd con dos campos, uno que contendra una variable de la sesion, y el otro que sera el id de la sesion. No se si necesito alguno mas.

Lo estoy intentando implementar pero no lo consigo, el codigo que tengo es este:

- Este es un archivo que agrego a todos mis archivos php, para controlar que el archivo esta logeado, es decir que se ha creado una sesion.
Código:
session_cache_limiter();
// Inicio la sesión
session_start();
// Para que al cerrar la ventana se termine la sesion
session_set_cookie_params(0, "/", $_SERVER["HTTP_HOST"], 0); 

// Comprobamos que el usuario esta logeado
if ($_SESSION["logeado"] != "si") {
    //si no existe, envio a la página de autentificacion
    header("Location: index.php");
    //ademas salgo de este script
    exit();
}
Creo que lo ideal, seria colocar un else para comprobar que si esta logeado en la web, mirar en la tabla sesiones si existe su sesion, y si ya existe actualizar el campo id_sesion con esta nueva sesion y eliminar la anterior, y si no crear un nuevo registro en la tabla.

Esta ultima parte no me viene el codigo a la cabeza ahora mismo, si podeis echarme una mano os lo agradezco

Saludos!!