Foros del Web » Programando para Internet » PHP »

Problema con sistema de usuarios activos

Estas en el tema de Problema con sistema de usuarios activos en el foro de PHP en Foros del Web. Hola, he diseñado un sistema para mostrar los usuarios activos, pero nose xk razon cada usuario se inserta varias veces en la bd... no ntiendo ...
  #1 (permalink)  
Antiguo 22/05/2008, 16:42
 
Fecha de Ingreso: noviembre-2007
Mensajes: 264
Antigüedad: 16 años, 4 meses
Puntos: 0
Problema con sistema de usuarios activos

Hola, he diseñado un sistema para mostrar los usuarios activos, pero nose xk razon cada usuario se inserta varias veces en la bd... no ntiendo xk yo creo k script sta bien...aki lo dejo... aver si alguien ve el error. un saludo gracias


Código PHP:
if(isset($_SESSION["usuario"]))
{
include(
"conexion.php");

// Tiempo que dura inactivamente
    
$tiempo time()+(5*60);
    
$tiempo_actual time();
    
// Comprueba si esta el usuario
    
$query "SELECT * FROM `online` WHERE `usuario`='$_SESSION[usuario]' ;";
    
$con mysql_query($query);
    
$num mysql_num_rows($con);

    
// Sino esta el usuario lo inserta y si esta lo actualiza
    
if($num==0)
    {
    
        
$query "INSERT INTO `online` ( `usuario` , `tiempo` )
VALUES ('$_SESSION[usuario]', '$tiempo' )"
;
        
mysql_query($query);
    }
    else
    {
        
$query "UPDATE `online` SET `usuario` = '$_SESSION[usuario]', `tiempo` = '$tiempo' LIMIT 1 ;";
        
mysql_query($query);
    }
}

    
// Borrar los usuarios inactivos
    
$query "DELETE FROM `online` WHERE `tiempo`<'$tiempo_actual' ;";
    
$con mysql_query($query); 

Última edición por layker; 22/05/2008 a las 16:59
  #2 (permalink)  
Antiguo 22/05/2008, 16:45
 
Fecha de Ingreso: marzo-2004
Ubicación: España
Mensajes: 185
Antigüedad: 20 años, 1 mes
Puntos: 19
Respuesta: Problema con sistema de usuarios activos

imprime el valro de $num aver que valor te esta cogiendo, yo creo que no se hace directamente asi.
__________________
Escape Room -

Ios Games
  #3 (permalink)  
Antiguo 22/05/2008, 16:54
 
Fecha de Ingreso: noviembre-2007
Mensajes: 264
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Problema con sistema de usuarios activos

he probado a imprimirlo :S, (este script lo tngo incluido al principio de cada pagina de mi web), me acabo de dar cuenta que al ingresar, cuando lleva a cabo las comprobaciones de user y pass, tengo un header("location: ...."); que me redirecciona a un panel de usuario. Una vez alli el valor de $num me muestra 0 pero sinembargo se ha regsitrado en la bd.. :S creo k ay sta el problema como puedo solucionarlo... gracias
  #4 (permalink)  
Antiguo 22/05/2008, 16:56
 
Fecha de Ingreso: enero-2008
Ubicación: La Plata
Mensajes: 136
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Problema con sistema de usuarios activos

Si te fijas , falta cerrar el parentesis en esta query :
Código PHP:
$query "INSERT INTO `online` ( `usuario` , `tiempo` )
VALUES ('$_SESSION[usuario]', '$tiempo' "

Dudo que sea ese el causante del problema , pero puede que si , asique debes modificarlo por algo asi:

Código PHP:
$query "INSERT INTO `online` ( `usuario` , `tiempo` )
VALUES ('$_SESSION[usuario]', '$tiempo') "

  #5 (permalink)  
Antiguo 22/05/2008, 16:58
 
Fecha de Ingreso: noviembre-2007
Mensajes: 264
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Problema con sistema de usuarios activos

Buena observacion, pero me he equivocado al copiarlo.. lo abre borrado sin querer... asias de todos modos..
  #6 (permalink)  
Antiguo 22/05/2008, 16:59
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema con sistema de usuarios activos

hazlo de esta otra manera:


Código PHP:

if($num>0
    { 
      
$query "UPDATE `online` SET `usuario` = '$_SESSION[usuario]', `tiempo` = '$tiempo' LIMIT 1 ;"
        
mysql_query($query); 

           } 
    else 
    { 
$query "INSERT INTO `online` ( `usuario` , `tiempo` ) 
VALUES ('$_SESSION[usuario]', '$tiempo' "

        
mysql_query($query); 

           } 
Un saludo
  #7 (permalink)  
Antiguo 22/05/2008, 17:04
 
Fecha de Ingreso: noviembre-2007
Mensajes: 264
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Problema con sistema de usuarios activos

Cita:
Iniciado por jaronu Ver Mensaje
hazlo de esta otra manera:


Código PHP:

if($num>0
    { 
      
$query "UPDATE `online` SET `usuario` = '$_SESSION[usuario]', `tiempo` = '$tiempo' LIMIT 1 ;"
        
mysql_query($query); 

           } 
    else 
    { 
$query "INSERT INTO `online` ( `usuario` , `tiempo` ) 
VALUES ('$_SESSION[usuario]', '$tiempo' "

        
mysql_query($query); 

           } 
Un saludo
Parece ser que asi funciona correctamente, muxas gracias x la ayuda y x la rapidez. sois uns fieras. un saludo
  #8 (permalink)  
Antiguo 24/05/2008, 09:48
 
Fecha de Ingreso: noviembre-2007
Mensajes: 264
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Problema con sistema de usuarios activos

Hola, toy aki de nuevo con este post... resulta k parecia k se abia arreglado pero sigue pasando lo mismo.. alguien ve el fallo?? tiene k ser k no sta bien estructurao el algoritmo o algo... un saludo
  #9 (permalink)  
Antiguo 24/05/2008, 14:50
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema con sistema de usuarios activos

has provado ha cambiar esas comillas raras que tienes en los SELECT

Cita:
$query = "SELECT * FROM `online` WHERE `usuario`='$_SESSION[usuario]' ;"
por

Cita:
$query = "SELECT * FROM 'online' WHERE 'usuario'='$_SESSION[usuario]' ;"
  #10 (permalink)  
Antiguo 24/05/2008, 15:11
 
Fecha de Ingreso: noviembre-2007
Mensajes: 264
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Problema con sistema de usuarios activos

Eso no es, m van bien lasconsultas con esas comillaas, son las que salen en phpmyadmin... pero no se xk puede pasar
  #11 (permalink)  
Antiguo 24/05/2008, 15:20
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema con sistema de usuarios activos

no se que sera pero veo que en el query le faltan unas comillas al $_SESSION

deberia de ser, vamos digo yo, a si

$_SESSION ['usuario']
  #12 (permalink)  
Antiguo 24/05/2008, 15:21
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Problema con sistema de usuarios activos

bueno,siempre utiliza en tus consultas el mysql_real_escape_string y el sprintf, aunque este último es un poco lenta, pero vale la pena que tengas seguridad en tus scripts
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 06:28.