Problème - utilisation last_visit

Codeur61

Codeur61 Le 18 février 2019 à 21:20 (Édité le 18 février 2019 à 21:20)

Bonjour, 
J'ai un problème. (comme tout monde qui poste sur ce forum bien evidemment 😋) 
J'ai créer un lien qui n'est accessible qu'une fois par jour pour les utilisateurs de mon site. 
Seulement, avec last_visit, je ne peux faire qu'un seul lien accessible une fois par jour, car quand la visite est faite, pour toutes les pages limitée à une visite par jour, le last_visit est compté comme "true". 
En gros, j'ai 5 liens limités à une visite par jour : 
Lien n°1 visitable sans problème (on entre l'heure de la visite dans la bdd) 
Lien n°2 non visitable car last_visit est déjà compté pour aujourd'hui.
etc...
Je souhaite savoir si l'on peut contourner cela. 
Avec l'ip peut être.. mais non merci, n'importe qui qui a un VPN peut passer comme ça.
Cookie, il suffit d'un éditeur pour contourner et je n'y connais rien...
Alors voila, je cherche peut être une solution inexistante, quelqu'un peut m'éclairer ?
Je mets mon code : 
$q = $bdd->prepare("SELECT * FROM tokens WHERE id_membre = ?");$q->execute([$_SESSION['id']]);
$user = $q->fetch();
$q->closeCursor();
date_default_timezone_set('Europe/Paris');
setlocale(LC_TIME, 'fr');
if (isset($_SESSION['id']) && !is_null($user['last_visit']) && $user['last_visit'] == date('Y-m-d')) {
   $_SESSION['alert'] = "Vous avez déjà visité cette page aujourd'hui. Revenez demain !";
      header('Location: enquetes2.php?id='.$userinfo['id'].'#');
} else {
   $q = $bdd->prepare("UPDATE tokens SET last_visit = ? WHERE id_membre = ?");
   $q->execute([date('Y-m-d'), $_SESSION['id']]);
   echo "Vous venez d'utiliser votre accès d'aujourd'hui. Vous ne pourrez pas revenir ici une fois la page quittée.";

Merci de votre aide
Clouder

Clouder Le 21 février 2019 à 09:53

Pour ma part j'ai une fonction qui me sert de comptage unique par jour sur l'intégralité de mon site.

J'utilise l'adresse ip de la personne forcément car c'est ce qu'il y a de plus fiable. Après si une personne utilise un VPN alors tant pis c'est pas si important. C'est juste pour toi avoir des statistiques.

Pour te donner une idée bête si tu vas dans une université tu verras que plusieurs personnes auront la même ip donc tu n'en comptes que une. Tu peux peut-être perdre 20 visites si 20 personnes de la bas viennent sur ton site mais après on fait avec ce que l'on peut avoir. Sinon c'est traquer un utilisateur et au niveau de la loi c'est pas terrible 😅😅
 
Codeur61

Codeur61 Le 21 février 2019 à 11:44 (Édité le 21 février 2019 à 19:24)

A oui d’accord merci @clouder ! J’avais pensé aussi à une beaucoup plus fastidieux... créer une table « last_visit » et créer par exemple 10 colonnes llast_visit1... last_visit2 etc... 
et comme ça je peux faire 10 liens qui sont accessible 1 fois par jour pour un même id. 
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte