Autoriser le clique seulement toute les 24h

Fermé
Edwyn29 Messages postés 19 Date d'inscription vendredi 24 octobre 2014 Statut Membre Dernière intervention 20 août 2015 - Modifié par Edwyn29 le 20/08/2015 à 00:23
NHenry Messages postés 15172 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 décembre 2024 - 20 août 2015 à 14:04
Bonjour,

Je suis débutant en php et je suis en train de créer un petit site rémunérateur.

Les membres auront un système de "point" appelé "Win's".

J'ai développé un petit module où le membres clique sur un bouton et ça lui génère une valeur entre 100 et 5000 Win's avec
mt_rand(100, 5000)


J'ai utilisé :

<form method="POST" action="">
   <input type="submit" name="generer" value="Ouvrir la grille">
</form>


<?php
$id = $_SESSION['id'];

if (isset($_POST['generer'])) {

$req_wins = $bdd->prepare("SELECT wins, historique_wins FROM membres WHERE id='$id'");
$req_wins->execute(array());
$resultat_wins = $req_wins->fetch();

 $aleatoire = mt_rand(100, 5000);
 $aleatoire2 = number_format($aleatoire, 0, '.', ' ');
 $ajout = $resultat_wins['wins'] + $aleatoire;

$req_ajout = $bdd->prepare("UPDATE membres SET wins = '$ajout', historique_wins = '$ajout' WHERE id='$id'");
$req_ajout->execute(array());
$resultat_ajout = $req_ajout->fetch();

 echo "<p>Vous avez gagné <b>".$aleatoire2." Win's</b> aujourd'hui !</p>";

$req_wins->closeCursor();
$req_ajout->closeCursor();
 }
?>


J'ai donc 2 questions :

- Comment puis-je faire pour que le membre puisse cliquer seulement 1 fois par jour ? Ou tout simplement afficher "Vous avez déjà cliqué, revenez demain" lorsqu'il re-cliquera ? (J'aimerais le faire en sélectionnant la session plutôt que sélectionner l'ip, j'espère que c'est possible ^^)

- Avec UPDATE (ou autre), comment puis-je faire pour additionner la valeur généré avec
mt_rand(100, 5000)
? Car pour l'instant, il change carrément la valeur dans la base de donnée par celle généré.

1 réponse

NHenry Messages postés 15172 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 décembre 2024 350
20 août 2015 à 00:29
Si c'est une journée, une session ne sera pas suffisante.
Tu peux par exemple :
  • Demander la création d'un compte et dans les propriétés de ce compte, la date du dernier clic.
  • Mettre un cookie (24h de vie) qui marque de quand date le dernier clic.

0
Edwyn29 Messages postés 19 Date d'inscription vendredi 24 octobre 2014 Statut Membre Dernière intervention 20 août 2015 1
20 août 2015 à 00:32
Il n'es vraiment pas possible de faire ça avec les sessions ?

Si mon php ressemble à ça :

"Si le membre avec l'id xxxx à cliqué, mettre un délai de 24h avant qu'il puisse de nouveaux cliqué"
0
NHenry Messages postés 15172 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 décembre 2024 350
20 août 2015 à 14:04
Une session périme au bout de 30 minutes environ (Si pas de refresh de pages du site, dépendant la configuration du serveur), donc ce n'est pas une solution pour le stockage sur 24 heures.
0