Problema Contatore Accessi

danlupo

Utente Attivo
13 Lug 2009
73
0
0
Salve ho un problema con questo codice:

Codice:
<?php
//il Session_start() ho provato sia a metterlo qui che a metterlo nell'home page
 $html_result="";
$count_file= $_SERVER['DOCUMENT_ROOT'] . "/contaccessi.txt";
$NUM_DIR_URL="/../images/website/DIGITS/";
$NB_DIGITS=8;
if (file_exists($count_file))
    {
        $fp = fopen("$count_file","r+");
        flock($fp,1);
        $count=fgets($fp,4094);
        fclose($fp);
        if ($_SESSION['sessione']=true)
            {
            $fp = fopen($count_file, "w");
            $c= $count;
            $c++;
            fwrite($fp, $c); 
            fclose($fp);
            $count = $c;
            $_SESSION['sessione']=false;
            }
    }
else
    {
        echo "Non Trovato il File '\$count_file' <BR>";
    }
$action="contatore";
chop($count);
$nb_digits=max(strlen($count),$NB_DIGITS);
$count=substr("0000000000".$count,-$nb_digits);
$digits=preg_split("//",$count);
for($i=0;$i<=$nb_digits;$i++)
    {
        if ($digits[$i]!="")
            {
                $html_result.="<IMG SRC=\"$NUM_DIR_URL$digits[$i].gif\">";
            }
    }
?>
Semplicemente Mi aggiorna il contatore anche facendo il refresh della pagina.
La mia intenzione era di permettere un aggiornamento per ogni sessione


Grazie Daniele
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
crea un cookie, se questo esiste non deve essere consentita la riscrittura del contatore per tutto il periodo di vita del cookie
 

danlupo

Utente Attivo
13 Lug 2009
73
0
0
Grazie per la risposta !!
Solo che non so come gestirlo in modo che ogni volta che uno entra a vederlo mi incrementi il contatore.
Teoricamente con le sessioni ogni volta che uno chiude un browser lo riapre e visita il sito il counter si incrementa !!
Con i cookies questo non lo so fare.. :confused:

Daniele
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
potresti fare così, quando un utente incrementa il contatore nel suo browser si crea un cookie che dura per esempio 1 ora:
PHP:
<?php
$value = 'qualsiasi cosa';
setcookie("NomeCookie", $value, time()+3600);
?>
poi effettui un controllo:

PHP:
if (!isset($_COOKIE['cookie'])) {
//codice che incrementa il contatore
}