Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/06/2003, 21:42
Vzox
 
Fecha de Ingreso: abril-2003
Mensajes: 8
Antigüedad: 21 años
Puntos: 0
Cluster me parece que no es para tanto, simplemente no repare en el momento de subir el codigo, y si lo cambie mas tarde. Me parece bien esa correcion. Ok.

Pero ahora al grano hermano.

Bien este es un codigo realizado por camargo al que le he realizado unos cambios dentro de mi ignorancia, por que me daba una serie de errores. Y ahora me da otros.
Como le digo a camargo en un msjprivado; me da problemas al salir de la page y volver a entrar, por que la bd aun mantiene datos de usuario activo cuando no lo esta.

Yo creo que se podria hacer comparando la ip del guest y la del u.registrado, y si son iguales, borrar la ultima. Pero no se si se podra hacer y si se puede que supongo que si, no se como hacerlo.


Código:
<?



include("conexio.php"); //conexion a la bd mysql



$tiempo = 300; // tiempo en segundos, duracion del usuario



$timestamp = time();

$tiempolocal = $timestamp-$tiempo;

$file = $PHP_SELF; // archivos

$usuario = $HTTP_COOKIE_VARS["cafeloguser"]; //nombre de la cookie donde se encuentra el nombre del usuario



if ( $usuario == "guest" ) { // aquí me parece que va dando las prodiedades para los usuarios anónimos

$usuario = "guest";

}

if ( $usuario == "" ) {

$usuario = "guest";

}

if ( $usuario == "file" ) {

$usuario = "guest";

}





$result = mysql_query ("INSERT INTO online VALUES ('$timestamp','$file','$usuario','$REMOTE_ADDR')"); // se envian los datos a la BD


$delete = mysql_query ("DELETE FROM online WHERE timestamp<'$tiempolocal'"); // se borran datos de la BD


$result = mysql_query ("SELECT DISTINCT usuario FROM online ORDER By timestamp DESC"); // se selecionan los usuarios que no han caducado, que estan activos, en sentido descendente

$cuenta_user = mysql_num_rows($result); 


$result2 = mysql_db_query($dbname, "SELECT DISTINCT ip FROM online WHERE usuario = 'guest'"); // se selecionan las ips de los usuarios anónimos que son distintas

$cuenta_user2 = mysql_num_rows($result2);


if($cuenta_user == 1) { // mostramos el nº de usuarios
print("<b>$cuenta_user</b> visitante\n <br>");
} else {
print("<b>$cuenta_user</b> visitantes\n <br>");
}


while ( $datos = mysql_fetch_array($result) ) { // aquí nos muestra el nick de los usuarios registrados

if (( $datos[usuario] == "guest" ) || ( $datos[usuario] == "file" )) {
}

else {

    if ( $datos[usuario] == $usuario ) {

        echo "<B>";

    }

    echo "".substr($datos[usuario], 0, 14)."<br>";

    if ( $datos[usuario] == $usuario ) {

        echo "</B>";

    }
}

}

if($cuenta_user2 == 1) { // aquí nos muestra los usuarios no registrados(anónimos)
print("anónimo: <B>$cuenta_user2</B>"); 
} else {
print("anónimos: <B>$cuenta_user2</B>");
}

@mysql_close();




/* Para esto, debes crear una tabla con el nombre online:

code:
CREATE TABLE online (
  `timestamp` int(15) NOT NULL default '0',
  `file` varchar(100) NOT NULL default '',
  `usuario` longtext NOT NULL,
  `ip` varchar(40) NOT NULL default '',
  PRIMARY KEY  (`timestamp`),
  KEY `ip` (`ip`),
  KEY `file` (`file`)
) TYPE=MyISAM;
 */
?>
Todo con una ?. Por que no tengo ni pu... idea.

Bien ahora el codigo de camargo pagina con el codigo

Un saludo.