Foros del Web » Programando para Internet » PHP »

Impedir que un usuario se loguee 2 o mas veces

Estas en el tema de Impedir que un usuario se loguee 2 o mas veces en el foro de PHP en Foros del Web. Saludos. Necesito una colaboración en mi aplicación y espero me puedan ayudar con esto. Quisiera saber como impedir que un usuario ingrese al sistema dos ...
  #1 (permalink)  
Antiguo 02/06/2007, 12:49
 
Fecha de Ingreso: junio-2007
Mensajes: 6
Antigüedad: 17 años, 5 meses
Puntos: 1
Impedir que un usuario se loguee 2 o mas veces

Saludos.

Necesito una colaboración en mi aplicación y espero me puedan ayudar con esto. Quisiera saber como impedir que un usuario ingrese al sistema dos 0 mas veces con los mismos datos de login pero aplicando concepto de sesiones tengo una tabla usuario con una variable llamada estado que toma dos posibles valores 'Activo' o 'Inactivo' dependiendo si le usuario esta o no logueado.la variable se actualiza dependiendo de si el usuario cerró sesion o no. el script que me ejecuta esto esta asociado a un botón que me lleva a cabo la acción todo funciona bien,pero quisiera saber como hacer para que al cerrar el navegador esta variable también se me actualize aqui pongo el script que me controla el cierre de sesión.

<?php

// ESTABLECER LA CONEXIÓN CON EL SERVIDOR
$conex = mysql_connect("localhost", "xxxx", "xxxx")
or die ("No se pudo realizar la conexión con la base de datos");


// SELECCIÓN DE LA BASE DE DATOS
mysql_select_db("db",$conex);

// NOMBRE DE LA SESION
session_name("loginEstudiante");

session_start();

if ($_SESSION["s_estado"] == 'Activo' )
{

//CALCULAR TIEMPO TRANSCURRIDO
$fechaGuardada = $_SESSION["ultimoAcceso"];
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora) - strtotime($fechaGuardada));

//TIEMPO A 5 SEGUNDOS
//COMPARAR TIEMPO TRANSCURRIDO
if($tiempo_transcurrido >= 5)
{


// DESTRUIR LA SESION
session_destroy();

// INICIALIZAMOS LA VARIABLE EN CERO NUEVAMENTE
$_SESSION["s_estado"] = 'Inactivo';

$consulta = "UPDATE usuarios SET nomusu = '$_SESSION[s_nomest]', estado = '$_SESSION[s_estado]' WHERE codusu = $_SESSION[s_codest] ";
$resultado = mysql_query($consulta, $conex);


$my_error = mysql_error($conex);

if(!empty($my_error))
{
echo "No se pudo actualizar la tabla usuarios";
}
else
{
echo "<center><font color = #575757 ><b>La sesión ha sido cerrada. para volver a loguearse vuelva a la sección de usuarios.<a href = 'ingresar.html'><img src = 'Ir.jpg' vspace = 10 border = 0 height = 50 width = 50 ></center></font></a>";
}

// LIBERAR LOS CURSORES
//mysql_free_result($resultado);

}
else
{
// SE ACTUALIZA LA FECHA ACTUAL
$_SESSION["ultimoAcceso"] = $ahora;
}

}

?>

Espero me puedan ayudar ya que no he encontrado la forma de hacerlo de antemano muchas gracias.
  #2 (permalink)  
Antiguo 02/06/2007, 13:36
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 11 meses
Puntos: 11
De acuerdo Re: Impedir que un usuario se loguee 2 o mas veces

Hola,
Aquí tienes la solución:

http://www.forosdelweb.com/showthrea...=1#post2023328
  #3 (permalink)  
Antiguo 02/06/2007, 14:00
 
Fecha de Ingreso: junio-2007
Mensajes: 6
Antigüedad: 17 años, 5 meses
Puntos: 1
Sonrisa Re: Impedir que un usuario se loguee 2 o mas veces

usermax.

Muchas gracias por tu colaboración pero no es la forma en que quiero proceder por la sencilla razón del tipo de información y las opciones que tienen los usuarios. ¿Será que no hay una forma de cerrar el navegador y a la vez actualizar la variable estado a 'INACTIVO'?


Creo que habrá que meditarlo muy bien y si saliera que creo que se podrá, será un gran aporte. de todos modos muchas gracias por tu valioso aporte.
  #4 (permalink)  
Antiguo 02/06/2007, 16:47
 
Fecha de Ingreso: junio-2007
Mensajes: 18
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Impedir que un usuario se loguee 2 o mas veces

Hola acidport, la verdad es que no es nada fácil hacer lo que quieres y puesto que la opcion de usermax no te satisfizo, pues aqui te ofrezco otra forma, tiene sus ventajas y desventajas.

razoduke12.blogspot.com/2006/04/detectar-cierre-de-navegador.html

(por ser nuevo no pude ponerlo como liga, asi que agregale el 'h t t p : / / ')

Saludos!!
  #5 (permalink)  
Antiguo 02/06/2007, 18:42
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 11 meses
Puntos: 11
Re: Impedir que un usuario se loguee 2 o mas veces

Hola roliwar, muy bueno tu aporte!!
Lo unico de malo que veo hacerlo así (utilizando ajax) es que tendrás que obligar al usuario abrir tu site en una ventana popup.

Lo que yo hago en mi sitio, es usar el cron para ejecutar un script cada 15 min y en la tabla donde se guarda el tiempo de conexión, a las conexiones de más de 15 minutos las eliminas y le pasas a offline.

Cabe mencionar que cuando el usuario navegue por el sitio deberás actualizar el campo tiempo para que corra de cero.

SAludos
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 14:45.