89 lines
3.2 KiB
PHP
89 lines
3.2 KiB
PHP
|
<?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("&","&",$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("&","&",$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();
|
||
|
}
|