\brief Page de visite d'un site. \note N'incrémente que les vistes réelles. \warning Interdit aux bots ! */ require_once($_SERVER['DOCUMENT_ROOT'].'/core.class.php5'); // function parser() { global $tpl; $tpl->parse('global/header.tpl'); $tpl->parse('services/topsites/bar.tpl'); $tpl->parse('services/topsites/out.tpl'); $tpl->parse('global/footer.tpl'); } $tpl=new gagatemplate(pf_core::gaga_ini_dir()); $config=new config(); $config->service_id='TopSites'; $config->service_ident=4; $sql_c=new MySqreuil(); $pass_cookie=new cookie_choco(); pf_core::gaga_autoconfig($tpl); $rq_result=$sql_c->query('SELECT COUNT(*) AS n FROM topsites WHERE statut=0'); $n=$sql_c->fetch($rq_result); $n=(int)$n['n']; $tpl->assign(array( 'service_sel' => 6, 'page_title' => utils::service_name($config->service_ident).' - Visite d\'un site', 'err_msg' => '', 'err_type' => false, 'is_modo' => $pass_cookie->is_admin(4), 'num_ts_waiting' => $n )); $s=(int)$_GET['s']; $rq_result=$sql_c->query('SELECT * FROM topsites WHERE (id = '.$s.')'); if ($sql_c->num_rows($rq_result) <= 0) { $tpl->assign(array( 'err_msg' => 'Ce site n\'existe pas.' )); parser(); die(); } $site=$sql_c->fetch($rq_result); $ts_status=(int)$site['statut']; $tk=(int)$site['timer_kill_visites']; if ($ts_status != 1) { // Erreur: ce site n'est pas actif. // Eventuellement faire un genre de pub si il est en attente. if ($ts_status != 0) { $tpl->assign(array( 'err_msg' => 'Impossible de consulter ce site car il est désactivé.' )); } else { $tpl->assign(array( 'err_msg' => 'Coming soon !', 'err_type' => true )); } parser(); die(); } if (abs(time() - ($tk - $config->timer_disable_visites)) > 3) // Anti-flood (bots) { // Pas précisé dans le dossier s'il y a une limite sur les visites ou pas. // "Recharger" le timer de désactivation par visites. $sql_c->query( 'UPDATE topsites SET '. 'real_visites=real_visites+1 , '. 'timer_kill_visites='.(time() + $config->timer_disable_visites).' '. 'WHERE id='.$s, true ); } // Ficher la visite dans les IP pour les stats des TopSites et les admins. if (getenv('HTTP_X_FORWARDED_FOR')) { $ip=getenv('HTTP_X_FORWARD_FOR'); } else { $ip=getenv('REMOTE_ADDR'); } $host=@gethostbyaddr($ip); $my_ip=$ip."@".$host; $sql_c->query( 'INSERT INTO topsites_ip SET '. 'ts_id='.$s.' , '. 'ip_host=\''.$sql_c->escape($my_ip).'\' , '. 'act=2 , '. 'date_act='.time().' , '. 'member_id='.(($pass_cookie->is_valid()) ? $pass_cookie->datas['user_id'] : 'NULL'), true ); header('Location: '.$site['url']); // Go, go, go !! ?>