PHP - proteger sesión

 
Vista:
sin imagen de perfil

proteger sesión

Publicado por guillermo arias (14 intervenciones) el 11/08/2006 06:42:00
Hola, agradecería me den solución a esto:

Lo que quiero es que mientras el usuario esté logueado al aplicativo nadie más pueda ingresar usando el mismo usuario y clave de la persona que ya se ha logueado.

Bye
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:proteger sesión

Publicado por maxter (205 intervenciones) el 11/08/2006 17:34:09
Bueno eso podrías hacerlo creando un campo más en tu tabla de usuario [en caso de que trabajes con BD] del tipo lógico, cuando el usuario se loguee le pones a ese campo 1 y a la hora de chequear el ligin y el password también chequeas que ese campo sea diferente de 1 ya que si no es que hay un user logueado. Esa es teoricamente la idea.

Cualquier duda, posteala.

Saludos
Yoandy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:proteger sesión

Publicado por guillermo arias (14 intervenciones) el 11/08/2006 21:20:04
Ok, pero que pasa si a mi usuario autorizado se le va la corriente de la pc o por algún otro motivo no cierra la sesión, la próxima vez que quiera loguearse aparecerá como que ya está activo y no se le permitirá.
¿qué idea puedes darme al respecto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:proteger sesión

Publicado por maxter (205 intervenciones) el 11/08/2006 22:10:32
Bueno aquello fue una pequeña solución, para hacerlo bien creas otra tabla, en ella tendrías

tiempo -> integer
usuario -> varchar

Teoricamente [se me ha pegado la palabrita jejeje] el usuario se loguea, escribes en esa tabla el timestamp + una cantidad de segundos prudencial[esto te lo explico después] y el usuario que se logueó. Esto lo puedes hacer aparte para que lo metas como include en cada una de tus páginas [y de ahí sacas un contador de usuarios online]. Junto en este script mandarías a borras a todo el usuario que no haya estado activo en la cantidad de segundos que te dije antes. El script sería algo como esto

useronline.php
============
<?php
session_start();
//segundos de actividad, en este caso son 5 min
$timeout = 300;
$timestamp = time();
$tiempo = $timestamp + $timeout;
$server = "tu_server";
$user = "tu_user";
$pass = "tu_pass";
$mydb = "tu_bd";
$conn = mysql_connect($server, $user, $pass) or die("No se pudo realizar la conexion con la base de datos...".mysql_error());
mysql_select_db($mydb, $conn);
/*se agrega el usuario, puedes también si ya el usuario está activo actualizar el campo tiempo, no lo hago porque estoy algo apurado*/
mysql_query("INSERT INTO tu_tabla VALUES ('".$tiempo."','".$HTTP_SESSION_VARS['nombre_de_la_session_del_usuario']."')");
/*Borramos los usuarios inactivos, ya sea por apagón, o por falta de conexión u otra cosa*/
mysql_query("DELETE FROM users_online WHERE time < ".$timestamp."");
?>

Ya lo que necesita es modelarlo un poco a tu gusto. Cualquier cosa postea.

Saludos,
Yoandy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar