Hola amigo en mi Web tengo un sistema que yo desarrolle.
Empesemos:
ajax.js Código PHP:
function receiveUserOnline(){
var campoadduseronline = document.getElementById('UserList');
//campoadduseronline.innerHTML = "<div align='center'><img src='pw-includes/imagenes/cargando2.gif' /></div>";
httpReceiveUserOnline.open("GET", "php_ajax_usuariosonline.php",true);
httpReceiveUserOnline.onreadystatechange=function() {
if (httpReceiveUserOnline.readyState==4) {
campoadduseronline.innerHTML = "";
campoadduseronline.innerHTML = httpReceiveUserOnline.responseText;
}
}
httpReceiveUserOnline.send(null)
setTimeout('receiveUserOnline();',5000);
}
php_ajax_usuariosonline.php Código PHP:
<?
session_start();
include("./chek_login.php");
Mostrar_Nick_de_usuarios_en_Linea();
function Mostrar_Nick_de_usuarios_en_Linea()
{
include("../configuracion.php");
if (getenv(HTTP_X_FORWARDED_FOR)=="")
{
$ip = getenv(REMOTE_ADDR);
}
else
{
$ip = getenv(HTTP_X_FORWARDED_FOR);
}
$timeoutseconds = 5; //5 segundos
$timestamp=time();
$timeout=$timestamp-$timeoutseconds;
/*===================================================
= ADD / AÑADIMOS
====================================================*/
if(CheckNivel())
{
$consulta = mysql_query("select * FROM ".$tb_enlineareg." WHERE usuario='".$_SESSION['usuario_en_login']."'") or die ("Error1");
$num_resultados=mysql_num_rows($consulta);
$sql=mysql_fetch_array($consulta);
$laid=stripslashes($sql["id"]);
if($num_resultados !=0)
{
mysql_query("update ".$tb_enlineareg." set timestamp='".$timestamp."' WHERE id='".$laid."'") or die ("Error2") ;
}
else
{
mysql_query("insert into ".$tb_enlineareg." values ('','".$_SESSION['usuario_en_login']."','".$timestamp."')") or die ("Error3") ;
}
}
else
{
$consu_noreg=mysql_query("select * FROM ".$tb_enlineano." WHERE ip='".$ip."'") or die ("Error4");
$num_noreg=mysql_num_rows($consu_noreg);
$sql_noreg=mysql_fetch_array($consu_noreg);
$idnoreg=stripslashes($sql_noreg["id"]);
if($num_noreg !=0)
{
mysql_query("update ".$tb_enlineano." set timestamp='".$timestamp."' WHERE id='".$idnoreg."'") or die ("Error5") ;
}
else
{
mysql_query("insert into ".$tb_enlineano." values ('','".$ip."','".$timestamp."')") or die ("Error6") ;
}
}
/*===================================================
= ELIMINAMOS / CLEANING
====================================================*/
mysql_query("DELETE FROM ".$tb_enlineano." WHERE timestamp < ".$timeout."") or die("Useronline Database DELETE Error");
mysql_query("DELETE FROM ".$tb_enlineareg." WHERE timestamp < ".$timeout."") or die("Useronline Database DELETE Error");
/*===================================================
= MOSTRAMOS LOS DATOS OBTENIDOS
====================================================*/
$consulta2 = mysql_query("SELECT * FROM ".$tb_enlineareg."") or die ("Erro de consulta en DB") ;
$num_resultados2=mysql_num_rows($consulta2);
if($num_resultados2 <> 0)
{
for($i=0; $i<$num_resultados2; $i++)
{
$sql2=mysql_fetch_array($consulta2);
$useronlinenick=stripslashes($sql2["usuario"]);
//Consultamos los datos del usuario segun su nick
$consulta3=mysql_query("SELECT id,tipo FROM ".$tb_usuarios." WHERE nick='".$useronlinenick."'") or die ("Error7");
$sql3=mysql_fetch_array($consulta3);
$idnick=stripslashes($sql3["id"]);
$tiponick=stripslashes($sql3["tipo"]);
//echo "UO".$idnick."---".$useronlinenick."---".$tiponick."---";
echo "<span class=\"".$tiponick."\" onclick=\"popup_perfil_user(event,'".$useronlinenick."')\" >".$useronlinenick."</span>, ";
}
}
else
{
echo "<div align=\"center\">No hay usuarios en linea en este momento.</div>";
}
}
?>
chek_login.php Código PHP:
<?
function CheckNivel()
{
include("../configuracion.php");
if(!empty($_SESSION['usuario_en_login']) && !empty($_SESSION['token']))
{
//quitamos el posible SQLInjection del user y password
$_SESSION['usuario_en_login'] = mysql_real_escape_string($_SESSION['usuario_en_login']);
$_SESSION['token'] = mysql_real_escape_string($_SESSION['token']);
//checamos que exista
$consultaChek = mysql_query("SELECT * FROM ".$tb_usuarios." WHERE nick = '".$_SESSION['usuario_en_login']."' && token = '".$_SESSION['token']."' ") or die("Error de reconocimiento de usuario");
if(mysql_num_rows($consultaChek) == 1)
{
//volvemos a calcular un token
$_SESSION['token'] = md5(rand().$_SESSION['usuario_en_login']);
mysql_query("UPDATE ".$tb_usuarios." SET token = '".$_SESSION['token']."' WHERE nick = '".$_SESSION['usuario_en_login']."'") or die("Error al actualizar la info de session");
return true;
}
else
{
return false;
}
mysql_free_result($consultaChek);
}
}
?>
configuracion.php Código PHP:
<?
/*TABLAS DE LA BASE DE DATOS*/
$tb_usuarios="warez_usuarios";
$tb_enlineano="warez_enlineano";
$tb_enlineareg="warez_enlineareg";
/*CONEXION A LA BASE DE DATOS*/
@ $db = mysql_pconnect("localhost","user","password");
if(!$db)
{
echo "No se ha podido conectar a la base de datos - Error de conexion";
exit;
}
mysql_select_db ("basededatos");
?>
Solo cambia el nombre al de tu sesión y crea las tablas en tu base de datos. Espero te sirva, en todo caso me puedes escribir por privado. Saludos