per quanto sembri strano on line non ho trovato un counter che conti gli accessi ad un sito, ove per accessi intendo da quando uno entra a quando uno esce dal sito, per quante pagine possa visitare
ho trovato milioni di counter per accessi unici (su cookie e ip) o hits a qualsiasi pagina (per cui se visita 100 pagine incrementa il counter di 100), ma non x accessi come vorrei io
allora vorrei farne uno io, semplicissimo che utilizzi un file di testo, basandomi sulle sessioni
premetto che il codice è inserito in un CMS, quindi alla session_start() da inserire prima di ogni codice HTML, per definire una moltitudine di variabili di sessione, ci pensa già il CMS...
pensavo di controllare se una variabile di sessione è settata, se non è settata settarla su un valore qualsiasi per saltare la IF che incrementa il contatore... a qualcosa del genere insomma:
Codice PHP:
$text = "";
$COUNT_FILE = "count_data.txt";
if (file_exists("$COUNT_FILE")) {
$fp = fopen("$COUNT_FILE", "r+");
flock($fp, 1);
$count = fread($fp, filesize($COUNT_FILE));
flock($fp, 3);
fclose($fp);
if (!isset ($_SESSION['counterpass'])) {
$count += 1;
//session_start();
$_SESSION['counterpass'] = "OK";
$fp = fopen("$COUNT_FILE", "w+");
flock($fp, 2);
fwrite($fp, $count);
flock($fp, 3);
fclose($fp);
$text .= $count;
$ns -> tablerender("Accessi al sito", $text);
}
} else {
$ns -> tablerender("Attenzione", "File dati non trovato");
}
$ns -> tablerender è il modo con cui il CMS legge poi a modo suo i valori
il codice non funge , né inserendo né escludendo session_start()... il contatore continua ad incrementarsi sempre e comunque ad ogni aggiornamento della pagina... sempre che aggiornare la pagina non significhi una nuova sessione....
e qui non ho capito: ovunque si legge che session_start() deve essere posizionata prima di qualsiasi codice Html, ma se nel corpo del codice devo dichiarare o modificare una variabile come faccio, se sempre ovunque si legge che prima di dichiarare o modificare una variabile occorre riscrivere session_start(), che deve essere sempre in cima a tutto il codice??
altra cosa: rilanciando (se è corretto rilanciare) session_start() resetto tutte le variabili di sessione o una volta dichiarate quelle rimangono fino a fine sessione??
grazie per le precisazioni