include_once __DIR__."/includer.php"; $tempo_online = 5 * 60; // 5 minutos function setContador($ip, $referer){ global $tempo_online; $block = "bot|proxy|crawl|twigol|spider|facebook"; $hostname = @gethostbyaddr($ip); if(preg_match("/".$block."/i", $hostname) || preg_match("/".$block."/i", $_SERVER['HTTP_USER_AGENT'])) return; $hoje = date("Y-m-d"); // verifica se ja existe contagem para "hoje" $rows_contador = count(getDadosList("SELECT data FROM contador WHERE data = '$hoje' LIMIT 1")); if($rows_contador == 0) execSQL("INSERT INTO contador SET data = '$hoje'"); // inclui a contagem no contador if($_SESSION['contador'] == 0){ execSQL("UPDATE contador SET count = count + 1 WHERE data = '$hoje' LIMIT 1"); $_SESSION['contador'] += 1; } if($_SESSION['contador_pageview'] < 20){ execSQL("UPDATE contador SET pageview = pageview + 1 WHERE data = '$hoje' LIMIT 1"); $_SESSION['contador_pageview'] += 1; } // // adiciona a referencia if(!empty($referer)){ $rows_referer = count(getDadosList("SELECT ip FROM contador_referencias WHERE ip = '$ip' LIMIT 1")); if($rows_referer == 0) execSQL("INSERT INTO contador_referencias SET referencia = '$referer', ip = '$ip'"); } // atualiza o acesso online $rows_online = count(getDadosList("SELECT ip FROM contador_online WHERE ip = '$ip' LIMIT 1")); if($rows_online == 0) execSQL("INSERT INTO contador_online SET ip = '$ip', time = '".time()."'"); else execSQL("UPDATE contador_online SET time = '".time()."' WHERE ip = '$ip' LIMIT 1"); execSQL("DELETE FROM contador_online WHERE time < '".(time() - $tempo_online)."'"); // } function getContador($periodo_inicial, $periodo_final){ return getDadosList("SELECT data, count, pageview FROM contador WHERE data >= '$periodo_inicial' && data <= '$periodo_final' ORDER BY data ASC"); } function getReferencias(){ return getDadosList("SELECT referencia, COUNT(referencia) rTotal FROM contador_referencias GROUP BY referencia ORDER BY rTotal DESC LIMIT 40"); } function getOnline(){ global $tempo_online; execSQL("DELETE FROM contador_online WHERE time < '".(time() - $tempo_online)."'"); return getDadosList("SELECT ip, time FROM contador_online ORDER BY time DESC"); }