Usa un file/db per memorizzare gli ip unici dei visitatori...funziona anche con i cookie disabilitati.
Questo squallido script l'ho postato un pò di tempo fa
Non richiede db e nemmeno un file preesistente.
Riporta hit totali, utenti online, passaggi googlebot.
codice:// array di visitatori e timestamp in cui sono arrivati $visitor_ip = array(); $visitor_tm = array(); $total = 0; // totale da inizio dei tempi $total_gbot = 0; // totale gbot da inizio dei tempi $meastime = time(); // default per inizio dei tempi $filename = "visitors.txt"; // il file di log // inizio lettura file if(file_exists($filename)) // esiste? { $hfile = fopen($filename, "r"); if($hfile){ $meastime = trim(fgets($hfile, 20)); $total = trim(fgets($hfile, 20)); $total_gbot = trim(fgets($hfile, 20)); while(!feof($hfile)){ $ip = trim(fgets($hfile, 20)); $tm = trim(fgets($hfile, 20)); // vedi? acquisisco solo i visitatori // presenti da meno di 600 secondi (10 min) if(time()-$tm<=600){ $visitor_ip[]= $ip; // push $visitor_tm[]= $tm; // push } } fclose($hfile); } } // fine lettura file if(isset($_SERVER["REMOTE_ADDR"])) // sempre vero? { $current_ip = $_SERVER["REMOTE_ADDR"]; $current_tm = time(); // dopo aver letto l'ip del visitatore controllo // se è OK e se non è presente nella lista if($current_ip!="" && !count($visitor_ip) || !in_array($current_ip, $visitor_ip)){ // non è presente! aggiungo! ++$total; $visitor_ip[]=$current_ip; $visitor_tm[]=$current_tm; // ciliegina sulla torta... if(isset($_SERVER["HTTP_USER_AGENT"])){ if(stristr($_SERVER["HTTP_USER_AGENT"], "googlebot")) { ++$total_gbot; } } } } // riscrivo il file con i dati // alcuni visitatori potrebbero essere scomparsi // perchè assenti da più di 10 minuti $hfile = fopen($filename, "w"); if($hfile){ fwrite($hfile, $meastime."\n"); fwrite($hfile, $total."\n"); fwrite($hfile, $total_gbot."\n"); // gli utenti online sono quelli...rimasti $online = count($visitor_ip); for($i=0; $i<count($visitor_ip); $i++){ fwrite($hfile, $visitor_ip[$i]."\n"); fwrite($hfile, $visitor_tm[$i]."\n"); } fclose($hfile); } // a questo punto hai le variabili // $meastime : data di inizio registrazione // $total : numero di visitatori totale (da $meastime) // $total_gbot : numero di visitatori che erano googlebot // $online : numero di visitatori online // la data la puoi formattare in numeri umani così $ddata = strftime("%d/%m/%Y" , $meastime);![]()

Rispondi quotando