\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 !!
?>