Contatore online tramite IP: aggiornamento "semplicità!".
Codice PHP:
<?php
session_start();
$ip = $_SERVER["REMOTE_ADDR"]; $ip = str_replace(".", "", $ip); //Tolgo i puntini dall'ip, per comodità.
if(!$_SESSION["Visita"]) //Se non c'è alcuna sessione "Visita" da parte del visitatore...
{
$_SESSION["Visita"] = array("tempo" => time(), "id" => $ip); //...gliene assegno una!
}
function check()
{
$file = file("online.txt"); //File che contiene i visitatori attivi.
$tempo_online = 600; //Il tempo dopo il quale il visitatore è da considerarsi off-line.
foreach($file as $riga)
{
$ix = explode("|", $riga);
if(time() >= $ix[1])
{
$w[] = "";
$b = 1;
}
else
{
$w[] = $riga;
}
}
if($b)
{
$w = implode("", $w);
$fu = fopen("online.txt", "w+");
fwrite($fu, $w);
fclose($fu);
}
}
function online($tipo)
{
$tempo_online = 600; //Il tempo dopo il quale il visitatore è da considerarsi off-line.
$file = file("online.txt");
foreach($file as $rigo)
{
$ex = explode("|",$rigo);
if($ex[0] == $_SESSION["Visita"]["id"])
{
$w[] = $ex[0]."|".($_SESSION["Visita"]["tempo"] + $tempo_online)."|\n";
$a = 1;
}
else
{
$w[] = $rigo;
}
}
if(!$a) //Nuova visita.
{
$fp = fopen("online.txt", "a+");
fwrite($fp, $_SESSION["Visita"]["id"]."|".($_SESSION["Visita"]["tempo"] + $tempo_online)."|\n");
fclose($fp);
}
else //Visita aggiornata.
{
$w = implode("", $w);
$fp = fopen("online.txt", "w+");
fwrite($fp, $w);
fclose($fp);
}
check(); //controllo se qualche sessione è scaduta.
$agg = file("online.txt"); //Rileggo il file.
if($agg[0] != "")
{
$n_online = count($agg);
}
else
{
$n_online = 0;
}
if(!$tipo)
{
return "Utenti connessi: ".$n_online; //Mostra: Utenti connessi: #
}
else
{
return "document.write('Utenti connessi: ".$n_online."');";
}
}
?>
Per far funzionare lo script vi basta scrivere:
. In pagine .php
Codice PHP:
#codice
echo online(0);
#codice
. In pagine .html, .html o comunque non dinamiche
Codice HTML:
<!-- Codice -->
<script type="text/javascript" src="pagina.php"></script>
<!-- Codice -->
e pagina.php dovrà essere:
Codice PHP:
<?php
include("online.php"); //online.php è la pagina con il codice dello script
echo online(1);
?>
Esempio [.php] QUI
Esempio [.html] QUI