Se dovesse servirti ecco un set di funzioni "rudimentali" ma efficaci per il printing del numero utenti connessi:
Codice PHP:
<?
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////// FUNCTIONS /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function chk_session($file)
{
$sid = session_id();
$a = file($file);
$content = $a[0];
$content = substr($content, 0, strlen($content));
$b = explode("-", $content);
$found = 0;
for($i=0;$i<count($b);$i++)
{
list($fsid, $ftime) = explode(",", $b[$i]);
if($fsid == $sid)
{
$b[$i] = $sid.",".time();
$found = 1;
}
if(!chk_session_time($ftime))
{
unset($b[$i]);
}
}
if($found == 1)
{
$rs = @fopen($file, "w+");
$content = implode("-", $b);
fwrite($rs, $content);
return true;
}
else
{
return false;
}
}
function add_session($file)
{
$rs = @fopen($file, "a");
$a = file($file);
if(count($a) == 0)
fwrite($rs, session_id().",".time());
else
fwrite($rs, "-".session_id().",".time());
}
function chk_session_time($time)
{
$timeouts = 180;
$timeout = time() - $timeouts;
if($time < $timeout)
return false;
else
return true;
}
function chk_session_number($file)
{
$a = file($file);
$content = $a[0];
$b = explode("-", $content);
$n = count($b);
return $n;
}
function chk_session_file($file)
{
if(!file_exists($file))
{
if(!fopen($file, "w+"))
echo "Si è verificato un errore durante la creazione del file. Verificare i diritti di scrittura.";
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//// END FUNCTIONS /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(!session_id()) { session_start(); } // faccio partire la sessione nel caso non fosse gia' attiva
$filename = "./session.txt"; // definisco con che nome e dove salvare il file txt
chk_session_file($filename); // controllo che il file esista altrimenti mi assicuro di crearlo
if(!chk_session($filename)) // controllo se la sessione è presente. In caso la aggiungo alla lista (nel frattempo elimino quelle scadute)
{
add_session($filename); // aggiungo la sessione alla lista
}
echo chk_session_number($filename)." utenti stanno visitando il sito"; // stampo quante sessioni sono attive al momento.
?>