[RESOLU] une action une fois par jour

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] une action une fois par jour

Re: une action une fois par jour

par @rthur » 21 janv. 2019, 14:23

il y a déjà un champ "date" dans la table membres mais je sais pas quoi en faire.
je suis vraiment nul....mdr
Avant de développer quoi que ce soit il faut déjà que tu réfléchisses à ce que tu veux faire et comment réussir techniquement à le faire.
Une fois que tu auras poser le principe/l'algo sur papier, alors tu pourras te mettre dans le code.

Re: une action une fois par jour

par bibou51 » 21 janv. 2019, 14:03

il y a déjà un champ "date" dans la table membres mais je sais pas quoi en faire.
je suis vraiment nul....mdr

Re: une action une fois par jour

par @rthur » 21 janv. 2019, 12:45

Il faut plutôt que tu mettes un champ date pour savoir la date de dernière utilisation du booster.

Re: une action une fois par jour

par bibou51 » 21 janv. 2019, 12:24

Bonjour àrthur,
Merci pour les réponses.
C'est une fois par jour par utilisateur.
Dans ma bdd à la table membres j'ai ajouter un champ "booster" avec 0 comme valeur par défaut.

Re: une action une fois par jour

par @rthur » 21 janv. 2019, 01:33

Bonjour,

Est-ce que c'est une fois par jour pour tout le monde, ou une fois par jour par utilisateur ?

Si c'est pour tout le monde, il faut enregistrer du côté de ton site (dans un fichier texte ou dans une base de données par exemple) comme quoi l'exécution a déjà eu lieu pour ne pas la relancer jusqu'à la fin de la journée.

Si c'est par utilisateur, alors il faut enregistrer que l'exécution a déjà eu lieu pour cet utilisateur. Si l'utilisateur n'est pas identifié, le plus simple est de noter cela dans un cookie. Si l'utilisateur est identifié, alors tu peux noter cette info dans ta bdd utilisateur, c'est le plus sûr.

une action une fois par jour

par bibou51 » 20 janv. 2019, 23:10

Bonjour,
J'ai créé une page qui fonctionne un peu comme un bonus du jour, tout fonctionne mais je ne sais pas comment faire pour que cette page ne fonctionne qu'une fois par jour.
Du style, si on y va une fois tout fonctionne normalement et si on y retourne une deuxième fois dans la même journée ça affiche un message du style : "vous avez déjà fait le booster aujourd'hui, revenez demain ! "
Je demande donc votre aide pour résoudre mon petit problème.
Merci d'avance.

<?php
define('include',NULL);
include('core.php');
if (!isset($_SESSION['membre']) || $_SESSION['connect'] != true) {
header('Location: /compte/login');
die();
}

$nompage = 'Booster';
$descpage = 'Booster';
include('header.php');
include('sidebar.php');
$message = '';

$sqlinfos = $db->prepare('SELECT euros, credits, pseudo, avatar, grille, booster FROM membres WHERE id = :id');
$sqlinfos->execute(array(':id' => $_SESSION['membre']));
$infos = $sqlinfos->fetch(PDO::FETCH_OBJ);


if (isset($_POST['send'])) {
if ($_POST['grille'] == '' || $_POST['credits'] == '');

}

$update1 = $db->prepare('UPDATE membres SET grille = grille + :grille WHERE id = :id');
$update1->execute(array(':grille' => $grille+1, ':id'=>$_SESSION['membre']));
$update2 = $db->prepare('UPDATE membres SET credits = credits + :credits WHERE id = :id');
$update2->execute(array(':credits' => $credits+100, ':id'=>$_SESSION['membre']));

$message = '<div id=warning><span style="color:red"><b>veuillez patienter<br>prise en compte du booster en cours<b></span></div><script>setTimeout(\'window.location.replace("/compte")\',8000);</script>';

$avatar = ($infos->avatar == '') ? '/theme/images/noavatar.png' : $infos->avatar;

$insert2 = $db->prepare('INSERT INTO tchat SET membre = :membre, message = :message, date = :date');
$insert2->execute(array(':membre' => 1, ':message' => 'Merci '.$infos->pseudo.' pour le Booster, pour te remercier tu as reçu 100 crédits + 1 grille , A Demain !', ':date' => time()));

echo '<div id="content" class="float_r"><h2 class="center">Booster</h2><div class="center"></div><br>
<div class="topart center"><h3>Booster</h3><div class="sidehead2"><div class="sidehead3"></div></div></div>

<div class="padding center">
'.$infos->pseudo.'<br><br>
<img id="avatar" src="'.$avatar.'" alt="avatar" style="border-radius:10%;max-width:60px" />
<br><br>
Merci de booster le taux !<br><br>
<br><br>
<div id="info">'.$message.'</div>
<br><br>
'.$config->bonuspub.'
</div></div><br /><br />';

include('footer.php');
?>