Bonjour à tous,
Voilà, j'ai fait un système de vote avec restriction dans le temps (un vote toute les 2H), mais le souci est que quand un membre vote, ça bloque tout les autres. Dans la BDD, ça ne veut pas faire la différence entre le guid d'un membre par rapport à un autre.
J'ai essayé plein de "bidouille" mais rien ne veut y faire, avez-vous une solution à me proposer svp.?
je vous transmet le code.
Merci d'avance de vos réponses.
Cordialement
Vazer7070
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 // recupération de la ligne de vote de l'utilisateur $sql = $db1->prepare("SELECT time FROM votes WHERE ip=?"); $retour = $sql->execute([$_SESSION['id']]); if ($retour) { // la requête s'est bien passée $data = $sql->fetch(PDO::FETCH_ASSOC); // ligne sous forme de tableau associatif $now = time(); // le temps enregistré est il supérieur à maintenant ? if($data['time'] > $now) { // oui il est supérieur le vote n'est pas possible // temps restant à attendre avant le prochain vote $time_calc = ceil(((int) $data['time'] - $now) / 60); echo "<fieldset class=\"erreur\"><p class=\"red\">Vous devez attendre " . $time_calc . " minutes avant de pouvoir revoter !</p></fieldset>\n"; } else { // non le temps enregistré est inférieur à maintenant, l'utilisateur peut revoter // // ici traitement du nouveau vote // ... } } else { // traitement de l'erreur de la requête // ... } $time_vote = 7200; $time_db = time() + $time_vote; $sql = "INSERT INTO votes (ip,time) VALUES ('".$_SERVER['REMOTE_ADDR']."', '".$time_db."')"; $sql = $db1->prepare($sql); $sql->execute(); $sql = "INSERT INTO votes (ip,time) VALUES ('".$_SESSION['id']."', '".$time_db."')"; $sql = $db1->prepare($sql); $sql->execute(); $a = get_info($_SESSION['id'],'point'); $b = get_info($_SESSION['id'],'pts_vote'); $point1 = $vote + $a; $point2 = 1 + $b; $sql = "UPDATE accounts SET point=$point1 WHERE guid='".$_SESSION['id']."'"; $sql = $db2->prepare($sql); $sql->execute(); $sql = "UPDATE accounts SET pts_vote=$point2 WHERE guid='".$_SESSION['id']."'"; $sql = $db2->prepare($sql); $sql->execute(); //header('Location:'.$rpg.''); echo '<meta http-equiv="refresh" content="0; url='.$rpg.'">'; } ?>
Partager