Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/12/2002, 10:38
Avatar de El Menda
El Menda
 
Fecha de Ingreso: junio-2001
Ubicación: Jaén
Mensajes: 516
Antigüedad: 22 años, 10 meses
Puntos: 0
Proyecto "Usuarios Activos Advance"

Hola. Viendo Foros del web, he tenido la curiosidad esa de averiguar los nombres de los usuarios activos. Por ello he propuesto que hagamos un proyecto con el nombre "Usuarios Activos Advance". Éste sería de licencia GPL y libre distribución, lo que permitirá mejorar continuamente el código y servir de ayuda a mucha gente.
Yo, que se poco de PHP, he realizado la primera parte de este código. Es bastante regular, y seguro que todos me podríais ayudar a mejorarlo. Ahí va el codigo para crear tabla:

DROP TABLE IF EXISTS usuarios_activos_advance;
CREATE TABLE usuarios_activos_advance (
ip varchar(20) NOT NULL default '',
usuario varchar(50) NOT NULL default '',
fecha int(14) unsigned NOT NULL default '0',
PRIMARY KEY (ip)
) TYPE=MyISAM;

Y ahi va el código en PHP. No me ha funcionado, pero no he encontrado fallos. A ver si lo mejoramos y lo hacemos de libre distribución. Por cierto, por ahora sólo muestra el número de usuarios activos. Más tarde seguiré haciéndolo y mostrará además los nombres de las personas conectadas (aunque para ello habrá que diseñar un sistema de autentificación y una nueva tabla en MYSQL llamada "miembros". Ahí va el código:

Código PHP:
<?php
#Variables
$cookie_usuario $_COOKIE['cookie_usuario'];
#Ponemos el tiempo actual
$tiempo time();
#Tiempo minimo para poder saber si el usuario ha desconectado (5 minutos)
$tiempo_minimo $tiempo-5*60;
#Averiguamos la ip de dos metodos distintos si uno u otro metodo no funciona
$ip $HTTP_X_FORWARED_FOR;
 if (
$ip=="") {
 
$ip $REMOTE_ADDR;
 } else {
 }
/////////////
//Conectamos a la bd
   
$link=mysql_connect("localhost","root","root");
   
mysql_select_db("skatextreme",$link); 

//Borramos los usuarios que esten inactivos 5 minutos
   
$sql "delete from usuarios_activos_advance where fecha < ".$tiempo_minimo;
   
mysql_query($sql);
/////////////

    
if (! $cookie_usuario) {
//Si no hay cookie_usuario asignamos al visitante como anonimo
$usuario "Anonimo";
//Miramos si el usuario se habia metido en la pagina
   
$sql "select ip from usuarios_activos_advance where ip = '$ip' and usuario = '$usuario'";
   
$result mysql_query($sql);
        if (
mysql_num_rows($result) != 0) {
        
$sql "update usuarios_activos_advance set fecha = ".$tiempo." where ip = '$ip' and usuario = '$usuario'";
        
mysql_query($sql);
        } else {
//Si no existe insertamos el usuario en la base de datos
        
$sql "insert into usuarios_activos_advance (ip, usuario, fecha) values ('$ip', '$usuario', $time)";
        
mysql_query($sql);
        }
   
mysql_free_result($result);
    } else {
//Ahora conocemos al usuario
$usuario $cookie_usuario;
//Miramos si el usuario se habia metido en la pagina
   
$sql "select ip from usuarios_activos_advance where ip = '$ip' and usuario = '$usuario'";
   
$result mysql_query($sql);
        if (
mysql_num_rows($result) != 0) {
        
$sql "update usuarios_activos_advance set fecha = ".$tiempo." where ip = '$ip' and usuario = '$usuario'";
        
mysql_query($sql);
        } else {
//Si no existe insertamos el usuario en la base de datos
        
$sql "insert into usuarios_activos_advance (ip, usuario, fecha) values ('$ip', '$usuario', $time)";
        
mysql_query($sql);
        }
   
mysql_free_result($result);
    }

   
$sql "select ip, usuario from usuarios_activos_advance";
   
$result mysql_query($sql);
   
$usuarios mysql_num_rows($result);
   
//devolvemos el resultado
   
return $usuarios;
   
//liberamos memoria
   
mysql_free_result($result);
?>
__________________
"No hay mujer fea sino copa de menos"