online.php
Código PHP:
<?
include("config.php") ;
$fecha = time() ;
// Tiempo en el cuál se considerará al usuario en línea en minutos
$tiempo = 10 ;
// Se le resta el tiempo en minutos a la fecha actual
$tiempo = $fecha-$tiempo*60 ;
$ip = $REMOTE_ADDR ;
$usuario = $_SESSION["usuario"] ;
// Se eliminan las fechas que sean menores al tiempo límite
mysql_query("delete from uenlineavis where fecha < $tiempo") ;
mysql_query("delete from uenlineareg where fecha < $tiempo") ;
// Para los usuarios no registrados
$resp = mysql_query("select ip from uenlineavis where ip='$ip'") ;
if(mysql_num_rows($resp) == 0) {
mysql_query("insert into uenlineavis values ('$ip','$fecha')") ;
}
else {
mysql_query("update uenlineavis set fecha='$fecha' where ip='$ip'") ;
}
mysql_free_result($resp) ;
// Para los usuarios registrados
if($_SESSION["usuario"]) {
$resp = mysql_query("select usuario from uenlineareg where usuario='$usuario'") ;
if(mysql_num_rows($resp) == 0) {
mysql_query("insert into uenlineareg values ('$usuario','$fecha')") ;
}
else {
mysql_query("update uenlineareg set fecha='$fecha' where usuario='$usuario'") ;
}
mysql_free_result($resp) ;
}
// Se obtiene el número de usuarios en línea
$resp = mysql_query("select ip from uenlineavis") ;
// Número de usuarios
$usuarios = mysql_num_rows($resp) ;
mysql_free_result($resp) ;
$resp = mysql_query("select usuario from uenlineareg") ;
// Número de registrados
$registrados = mysql_num_rows($resp) ;
mysql_free_result($resp) ;
// Número de anonimos
$anonimos = $usuarios - $registrados ;
// Sacamos datos...
$porciento = $anonimos * 360 / 100;
// Creamos la imágen
$width = 180;
$height = 72;
$image = imagecreate($width, $height);
// Ponemos el fondo transparente
$transparente = imagecolorallocate($image, 0, 0, 0);
imagecolortransparent($image, $transparente);
// Colores, los que tiene 2 o son lo que son mas oscuros
$dentro1 = imagecolorallocate($image, 205, 112, 1);
$dentroo1 = imagecolorallocate($image, 167, 92, 1);
$dentro2 = imagecolorallocate($image, 5, 108, 213);
$dentroo2 = imagecolorallocate($image, 4, 89, 174);
$negro = imagecolorallocate($image, 0, 0, 0);
$azul = imagecolorallocate($image, 0, 0, 255);
$tol = imagecolorallocate($image, 0, 0, 0);
// Este for hara el efecto 3dmensional
// Poniendo 10 circulos abajo de la imagen con el color
// que este en el circulo mas oscuro.
for ($i = 40; $i > 30; $i##) {
imagefilledarc ($image, 39, $i, 65, 50, 0, $porciento, $dentroo1, IMG_ARC_PIE);
imagefilledarc ($image, 39, $i, 65, 50, $porciento, 360 , $dentroo2, IMG_ARC_PIE);
}
// Dibujo el circulo y lo divido en sus partes...
imagefilledarc ($image, 39, 30, 65, 50, 0, $porciento, $dentro1, IMG_ARC_PIE);
imagefilledarc ($image, 39, 30, 65, 50, $porciento, 360 , $dentro2, IMG_ARC_PIE);
// Leyenda
imagestring($image,2,80,5,"Leyenda:",$negro);
// Usuarios registrados:
imagefilledrectangle($image, 80, 20, 85, 25, $dentro2);
imagestring($image,1,89,19,"Registrados:",$negro);
imagestring($image,1,155,19,$registrados,$azul);
// Usuarios anonimos:
imagefilledrectangle($image, 80, 30, 85, 35, $dentro1);
imagestring($image,1,89,29,"Anonimos:",$negro);
imagestring($image,1,155,29,$anonimos,$azul);
// Enviamos la imágen al navegador...
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);
?>
Código PHP:
CREATE TABLE `uenlineareg` (
`usuario` varchar(20) NOT NULL default '',
`fecha` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`usuario`),
KEY `fecha` (`fecha`)
) TYPE=MyISAM;
CREATE TABLE `uenlineavis` (
`ip` varchar(15) NOT NULL default '',
`fecha` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`ip`),
KEY `fecha` (`fecha`)
) TYPE=MyISAM;
el caso es ke el script es para un sistema de usuarios con cookies pero el mio es con sesiones y pues cambie en la parte donde decia $_COOKIE["nick"] por mi variable de sesion y no funciona, tengo la libreria GD en mi hosting, pero no funciona, alguien me puede ayudar ??
Un saludo
![Adios](http://static.forosdelweb.com/fdwtheme/images/smilies/adios.gif)