ok, ya lo he definido pero no he entendido muy bien lo que me querias decir lo ultimo, el manual esta un poco borroso para mi todavia.
y ahora solo me dice que hay un usuario invitado y no me actualiza en la db, seguro que he hecho algo mal.
dejo el la funcion completa ya terminada pero me falla el actualizar.
Código PHP:
Ver original<?php
class usersOnline {
var $userOnlineTime;
var $userOnlineDate;
var $userOnlineIP;
var $userOnlineLimit;
var $userOnlineSession;
var $usersOnlineUsersSelect;
function usersOnlineConstruct() {
global $db,$db_table_prefix,$loggedInUser;
if(!isUserLoggedIn()) { $session = "0"; } else { $session = "1"; }
$this->userOnlineTime = 5; // Tiempo máximo de espera
$this->userOnlineDate = time(); // Momento que entra en línea $this->userOnlineIP = $_SERVER['REMOTE_ADDR']; // Recuperamos su IP
$this->userOnlineLimit = $this->userOnlineDate-$this->userOnlineTime*60; // Tiempo Limite de espera
$this->userOnlineSession = $session; // Vemos si es usuario o invitado
}
function usersOnlineDelete() {
global $db,$db_table_prefix;
// si se supera el tiempo limite (5 minutos) lo borramos
$sql = "DELETE FROM ".$db_table_prefix."Users_Online
WHERE Date_Time < '".$db->sql_escape($this->userOnlineLimit)."'";
return ($db->sql_query($sql));
}
function usersOnlineSelect() {
global $db,$db_table_prefix;
// tomamos todos los usuarios en linea
$sql = "SELECT * FROM ".$db_table_prefix."Users_Online
WHERE User_IP='".$db->sql_escape($this->userOnlineIP)."'";
return ($db->sql_query($sql));
}
function usersOnlineInsert() {
global $db,$db_table_prefix;
$this->usersOnlineUsersSelect = $this->usersOnlineSelect();
// Si son los mismo actualizamos la tabla gente_online
$sql = "UPDATE ".$db_table_prefix."Users_Online
SET Date_Time='".$db->sql_escape($this->userOnlineDate)."',
User_Session='".$db->sql_escape($this->userOnlineSession)."'
WHERE User_IP='".$db->sql_escape($this->userOnlineIP)."'";
return ($db->sql_query($sql));
// de lo contrario insertamos los nuevos
} else {
$sql = "INSERT INTO `".$db_table_prefix."Users_Online` (
`Date_Time`,
`User_IP`,
`User_Session`
)
VALUES (
'".$db->sql_escape($this->userOnlineDate)."',
'".$db->sql_escape($this->userOnlineIP)."',
'".$db->sql_escape($this->userOnlineSession)."'
)";
return $db->sql_query($sql);
}
}
function usersOnlineView() {
global $db,$db_table_prefix;
// Seleccionamos toda la tabla
$query = "SELECT * FROM ".$db_table_prefix."Users_Online";
//Usuarios no registrados
$query = "SELECT * FROM ".$db_table_prefix."Users_Online WHERE User_Session='0'";
//Usuarios registrados
$query = "SELECT * FROM ".$db_table_prefix."Users_Online WHERE User_Session='1'";
// Si hay 1 usuarios se muestra en singular; si hay más de uno, en plural
if($usuarios > 1 || $usuarios == 0){ echo("Hay "); } else { echo("Hay "); }
if($usuarios == 0){ echo("no "); } else { echo($usuarios." "); }
if($usuarios > 1 || $usuarios == 0){ echo("usuarios en línea."); } else { echo("usuario en línea."); }
echo '<br />';
echo 'Invitados: '.$noregistrados.'';
echo '<br />';
echo 'Usuarios: '.$registrados.'';
}
}
//View userCake users online
$viewUsersOnline = new usersOnline();
$viewUsersOnline->usersOnlineConstruct();
$viewUsersOnline->usersOnlineDelete();
$viewUsersOnline->usersOnlineSelect();
$viewUsersOnline->usersOnlineInsert();
?>
gracias por toda la ayuda, he avanzado un poquitin jejeje pero me doy cuanta de mas cosas