Bene :=D
Facciamo finta che il file dove salvi gli utenti registrati correntemente online si chiami reg_online.txt e che questo file sia così strutturato:
NOME UTENTE|TEMPO
Dove nome utente è il nome dell'utente e tempo è il tempo aggiornato ogni volta che fa un'azione.
Codice PHP:
<?php
function aggiorno($utente) //funzione di aggiornamento
{
$file = file("reg_online.txt");
foreach($file as $riga)
{
$ex = explode("|", $riga);
if($ex[0] == $utente)
{
$w[] = $ex[0]."|".(time()+300); //tempo attuale + 300 secondi (5 minuti)
$a = 1;
}
else
{
$w[] = $riga;
}
}
if(!$a) //se l'utente non è presente tra quelli online [ può succedere :P ]
$w[] = $utente."|".(time()+300);
$ok = implode("", $w);
$fp = fopen("reg_online.txt", "w+");
fwrite($fp, $ok);
fclose($fp);
}
function ch_online() //funzione di controllo
{
$file = file("reg_online.txt");
$tempo = time();
foreach($file as $riga)
{
$ex = explode("|", $riga);
if($tempo > $ex[1])
{
$w[] = "";
}
else
{
$w[] = $riga;
}
}
$ok = implode("", $w);
$fp = fopen("reg_online.txt", "w+");
fwrite($fp, $ok);
fclose($fp);
}
?>
Praticamente queste due funzioni le usi in tutte le pagine che gli utenti registrati possono visitare ed esse segneranno ogni loro movimento [no, in verità guardano se l'utente in 5 minuti ha fatto qualcosa ].
Vuoi il codice per vedere CHI è online?
Ma eccolo qua!
Codice PHP:
<?php
function vedi()
{
$file = file("reg_online.txt");
foreach($file as $riga)
{
$ex = explode("|", $riga);
$w[] = $ex[1];
}
$w = implode("<br />", $w);
return "Utenti registrati collegati al sito:<p>".$w."</p>";
}
?>
Esempio di pagina di utente:
Codice PHP:
<?php
//dichiarazione delle tre funzioni...
aggiorno($_SESSION["Utente"]);
ch_online();
echo vedi();
?>
Non sono sicuro, ma dovrebbe funzionare