<?php
  session_start ();
  ini_set ("display_errors", TRUE);

  /* La bone timezone */
  date_default_timezone_set ("Europe/Paris");

  chdir('..');

  require_once ("kernel/config.inc.php");
  require_once (path_lib."systeme.php");
  require_once (path_lib."lib_commune.php");
  require_once (path_lib."lib_commune2.php");

  require_once (path_libr."fonctions_communes.lib.php");
  require_once (path_libr."connexion2.lib.php");
  require_once (path_libr."cache.lib.php" );

  global $sqli;
  $sqli = connexion_sqli ();

  global $site_urls;
  $site_urls = [
    1 => "www.annecy.org/",
    2 => "m.annecy.org/",
    4 => "www.citia.org/",
    6 => "www.forumblanc.org/",
    7 => "www.citia.org/",
    8 => "admin.citia.org/",
  ];

  /* L'id de la personne */
  $iPersId = isset($_GET["pid"]) ? $_GET["pid"] : 0;

  // récupération des paramètres en forcant un typage 'chaine de caractères'
  $array_vars = [0 => "mini"];
  while (list($key, $value) = each ($array_vars))
  {
    if (isset($_GET[$value]))
      $$value = (string) trim (stripslashes ($_GET[$value]));
  }

  /* Récupération d'un paramètre */
  $aMini = explode (":", $mini);
  $mini = $aMini[0];
  $sParam = isset($aMini[1]) ? ":".$aMini[1] : "";

  /* Insertion possible (si pas notre IP) */
  $bCanInsert = !in_array (
          $_SERVER["REMOTE_ADDR"],
          ["90.85.222.59", "195.6.253.213", "81.80.99.115", "80.13.69.23", "109.7.113.18", "77.158.35.42"]
      ) && !isBot ();

  /* Insertion uniquement si la dernière ouverture est plus vieille que 1 minute ou première ouverture */
  if ($iPersId != 0 && $bCanInsert)
  {
    $sQuery = "SELECT `pms_dateheure` FROM `pages_mini_stats` WHERE `pms_ref_pmu_unique_tag` = '".$mini."'".
        " AND `pms_ref_pers_id` = '".$iPersId."' ORDER BY `pms_dateheure` DESC";
    $oResult = $sqli->query ($sQuery);

    /* Comparaison */
    if ($oResult->num_rows > 0)
    {
      $aResult = $oResult->fetch_assoc ();
      $iLastInsert = strtotime ($aResult["pms_dateheure"]);

      /* Pas d'insertion */
      $bCanInsert = time () - $iLastInsert >= 60;
    }
  }

  /* Ajout des stats */
  if ($bCanInsert)
  {
    $r_stats = "INSERT INTO `pages_mini_stats` ( `pms_ref_pmu_unique_tag`, `pms_dateheure`, `pms_ipaddr`, `pms_useragent`, `pms_ref_pers_id` ) ".
        "VALUES ( '".$mini."', NOW(), '".$_SERVER["REMOTE_ADDR"]."', '".addslashes (stripslashes ($_SERVER["HTTP_USER_AGENT"]))."', '".$iPersId."' )";
    $e_stats = $sqli->query ($r_stats);
  }

  $url = getCache("mini_citia_url", $mini);

  if ( $url === false ) {
    $r0 = "SELECT `pmu_ref_page_id`, `pmu_lang`, `pmu_ref_site_id`, `pmu_add_separator`, `pmu_add_params`, `pmu_url` FROM `pages_mini_urls` WHERE `pmu_unique_tag` LIKE '".$mini."'";

    $e0 = $sqli->query ($r0);
    if ($e0->num_rows > 0)
    {
      // hash trouvé
      $page = $e0->fetch_assoc ();
      if (is_object ($e0)) {
        $e0->free ();
      }

      $r1 = "SELECT `pl_full_url` FROM `pages_logs`, `sites` WHERE `pl_ref_site_id` = `site_id` AND `pl_ref_page_id` = ".$page["pmu_ref_page_id"]." AND `pl_lang` LIKE '".$page["pmu_lang"]."'";
      $e1 = $sqli->query ($r1);

      /* Trouvé, redirection */
      if ($e1->num_rows > 0)
      {
        $t1 = $e1->fetch_assoc ();
        $url = "https://".$site_urls[$page["pmu_ref_site_id"]].$t1["pl_full_url"].(!empty($page["pmu_add_params"]) ? $page["pmu_add_separator"].$page["pmu_add_params"] : "");
      }
      /* Pas trouvé et url */
      else if ($page["pmu_ref_page_id"] == '0')
        $url = $page["pmu_url"];
      /* Pas trouvé, citia.org */
      else
        $url = "https://www.citia.org/";

      if (is_object ($e1))
        $e1->free ();
    }
    else {
      $url = null;
    }

    setCache($url, "mini_citia_url", $mini);
  }

  /* Si lien 'Cliquez si vous n'arrivez pas...', rajout du paramètre */
  if ($url && preg_match ("/resources\/(newsletters|emailing|communique)/", $url)) {
    $url .= "?pid=".$iPersId;
  }
  else if (!$url) {
    // ce hash n'existe pas dans la base de données ! Mais que faire ?!?
    // Redirection vers citia.org par défaut...
    $url = "https://www.citia.org/";
  }

  /* Rajout du paramètre */
  $url .= $sParam;

  header ("HTTP/1.1 301 Moved Permanently");
  header ("Location: ".$url);
