Antes que nada, me olvidé de comentar al inicio del post que, fundamentalmente me guié para hacer esto
con este post.
Bueno, al parecer el problema de que no guardaba datos en la tabla era por el campo "ip int(11) NOT NULL default '0';", que comprobando da error de "Data truncated for column 'ip' at row '1'"
Por lo tanto, cambié la tabla y la dejé así:
Código:
CREATE TABLE `enlinea` (
`ip` varchar(32) NOT NULL default '0',
`usuario` varchar(32) NOT NULL default '0',
`fecha` int(11) NOT NULL default '0',
`tipo` varchar(32) NOT NULL default '0',
PRIMARY KEY (`usuario`)
) ENGINE=MyISAM;
Cambié el PRIMARY KEY a "usuario" por unos problemitas que lñuego explico.
La "function" quedó así:
Código PHP:
<?php
session_start();
//Conexión a la base de datos
include($_SERVER['DOCUMENT_ROOT']."/conectarse.php");
conectarse();
if(!function_exists("enlinea")){
function enlinea(){
global $pagina, $get;
$fecha = time() ;
$tiempo = 5 ;
$tiempo = $fecha-$tiempo*60 ;
$ip = $_SERVER['REMOTE_ADDR'] ;
$usuario = $_SESSION['user'] ;
mysql_query("DELETE FROM enlinea WHERE fecha < $tiempo") ;
$query = mysql_query("SELECT ip FROM enlinea WHERE ip = '$ip'") ;
if(mysql_num_rows($query) == 0) {
mysql_query("INSERT INTO enlinea VALUES ('$ip','anonimo','$fecha','anonimo')") ;
}
else {
mysql_query("UPDATE enlinea SET fecha = '$fecha' WHERE ip = '$ip'") ;
}
if($_SESSION['user']) {
$query = mysql_query("SELECT * FROM enlinea WHERE usuario = '$usuario'") ;
if(mysql_num_rows($query) == 0) {
mysql_query("INSERT INTO enlinea VALUES ('$ip','$usuario','$fecha','usuario')") ;
}
else {
mysql_query("UPDATE enlinea SET fecha = '$fecha' WHERE usuario = '$usuario'") ;
}
}
}
}
?>
Y con este script podemos comprobar el funcionamiento
Código PHP:
<?php
//Conexión a la base de datos
include($_SERVER['DOCUMENT_ROOT']."/conectarse.php");
conectarse();
global $pagina, $get;
/* Usuarios en linea */
$query=mysql_query("SELECT * FROM enlinea WHERE tipo = 'usuario'");
$usuarios = mysql_num_rows($query);
/* Anónimos */
$query = mysql_query("select * from enlinea where usuario = 'anonimo'") ;
$anonimos = mysql_num_rows($query) ;
/* total */
$query = mysql_query("select * from enlinea");
$total = mysql_num_rows($query);
echo ONLINE_."<br>";
echo TOTAL_ONLINE . " " . $total . "<br>";
echo TOTAL_ANONIMOS . " " . $anonimos . "<br>";
echo TOTAL_USUARIOS . " " . $usuarios;
echo"<br>";
$query = @mysql_query("SELECT * FROM enlinea WHERE tipo = 'usuario'");
while($datos = @mysql_fetch_array($query)){
echo "| <a href='".$pagina."?".$get."=registrados&u=".$datos[id]."'>".$datos[usuario]."</a> | \n";
}
?>
ESTA FUNCIONANDO! pero hay que pulir algunas cosas...
Sigo trabajando y haciendo pruebas... recordar que tengo pocos conocimientos, si alguien sugiere o corrige vienvenido sea!!!