hellofacteurV1/ctrl/liens_clic.php

89 lines
3.2 KiB
PHP
Executable File

<?php
/**
* Script enregistrant dans un fichier les clics des utilisateurs
* et les redirigeant vers la page souhaitée
*
* exemple : http://www.hellofacteur.com/go/48/1041417/30
*
* Pour limiter les ressources consommées du fait de faux clics (spam),
* les infos de l'abonnement doivent être trouvées dans un fichier cache existant et l'id de l'utilisateur cohérent.
**/
set_time_limit(120);
require_once("../modele/journal_erreurs.php");
if((empty($page[1]))||(empty($page[2]))||(empty($page[3])))
{
header("location:".SITE_URL."/404.php");
exit();
}
$id_abonnement=intval($page[1]);
$id_post=intval($page[2]);
$id_utilisateur=intval($page[3]);
$url_redirection="";
//je vérifie que l'abonnement existe et qu'il appartient bien à cet utilisateur
require_once("../modele/FclFlux_abonnement.php");
$abo=new FclFlux_abonnement();
$abo->id_abonnement=$id_abonnement;
$infos_abo=$abo->get_infos_cache(false);
if(!empty($infos_abo))
{
if($infos_abo["auteur_id"]==$id_utilisateur)
{
$posts_abo=$abo->get_liste_posts_cache(false,"mois");// version mois du fichier me permet de chercher un lien ancien (mail lu tardivement) - ici, pas de calcul du cache pour éviter de recharger des flux buggés à chaque clic.
if(!empty($posts_abo))
{
foreach($posts_abo as $post_infos)
{
if($post_infos["id_post"]==$id_post)
{
if(!empty($post_infos["auteur_id"]))
{// si une annonce a été saisie, on reste sur le site
$post=new FclFlux_post();
$post->id_post=$post_infos["id_post"];
$post_infos=$post->get_infos_cache(true);
if(!empty($post_infos["annonce"]))
$url_redirection=PAGE_REPERTOIRE_POST_INFO.$post->id_post;
unset($post);
}
if(empty($url_redirection)&&(!empty($post_infos["url"])))
$url_redirection=str_replace("&amp;","&",$post_infos["url"]);
break;
}
}
}
unset($posts_abo);
//pas trouvé dans fichier, je cherche dans la bd
if((empty($url_redirection))&&(empty($MSG_MAINTENANCE)))
{
// je cherche dans la bd
require("../modele/connexion-bd.php");
$cherche_post=FclFlux_post::recherche($id_post,"url,annonce");
if(!empty($cherche_post["annonce"]))
$url_redirection=PAGE_REPERTOIRE_POST_INFO.$id_post;
elseif(!empty($cherche_post["url"]))
$url_redirection=str_replace("&amp;","&",$cherche_post["url"]);
$Bd=null;
}
}
}
unset($infos_abo);
if(empty($url_redirection))
{
header("location:".SITE_URL."/404.php");
exit();
}
else
{
$post=new FclFlux_post();
$post->id_post=$id_post;
$user=new FclFlux_utilisateur();
$user->id_utilisateur=$id_utilisateur;
if((!empty($page[4]))&&($page[4]=="s"))
$post->ajout_journal_clic($user,$abo,"site");
else
$post->ajout_journal_clic($user,$abo,"email");
//que cela aie marché ou pas, je redirige vers la page :
unset($post);unset($user);unset($abo);
echo "<html><head><meta charset=\"utf-8\"><meta http-equiv=\"refresh\" content=\"5;URL=$url_redirection\"><script>document.location.href='$url_redirection';</script><title>Hello facteur - redirection en cours.</title></head><body><h1>Si vous n'êtes pas redirigé(e) d'ici quelques secondes, <a href='$url_redirection'>cliquez-ici</a>.</h1></body></html>";
//header("location:".$url_redirection);
exit();
}