Bonjour à tous et à toutes !
J'ai un soucis avec mon code php, voici tout d'abord ma situation :
Chaque jour mes utilisateurs reçoivent un mail. Ce mail contient un lien pour effectuer un "clic bonus", il peut en effectuer un chaque jour. Si il n'a pas encore effectué son clique et qu'il arrive sur la page j'affiche "Vous venez d'utiliser votre clic bonus" et je fais les requêtes en fonction, si il l'a déjà effectué j'affiche "Désolé ! Vous avez déjà utilisé votre clics bonus " .
Clic bonus pas encore utilisé = 0
Clic bonus utilisé = 1
Voici mon code :
Bon jusque là tout est clair, mon script fonctionne, mais pas tous chez mes utilisateurs , certains voient s'afficher le message comme quoi ils ont déjà utilisé leur clic bonus alors que ce n'est pas le cas. Chose encore plus étrange, le mauvais message s'affiche pourtant les traitements liés à son clic bonus fonctionne (c-a-d que le serveur affiche le message comme quoi l'utilisateur a déjà participé pourtant il effectue les requêtes comme si ce n'était pas le cas).
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 <?php $key = $_GET['key']; $id = $_GET['ani']; $subid = $_GET['subid']; require_once("./aideanimaux/connect.php"); // Connexion à la base de données $connexion = connect_db(); $sql1 = "SELECT * FROM `jos_acymailing_subscriber` WHERE `key` LIKE '$key' AND `subid` LIKE '$subid'"; $req1 = mysql_query($sql1) or die('Erreur dans la base de données<br>'.$sql1.'<br>'.mysql_error()); while($data = mysql_fetch_assoc($req1)) { if($data['clic_bonus'] == 1 ) // Si le clic bonus a déjà été utilisé { echo '<div class=\'text_bonus\'>Désolé ! Vous avez déjà utilisé votre clics bonus </div>'; } if($data['clic_bonus'] == 0 ) // Si le clic bonus n'a pas été utilisé { $sql2 = "SELECT * FROM animaux_liste WHERE id = '$id'"; $req2 = mysql_query($sql2) or die('Erreur dans la base de données<br>'.$sql2.'<br>'.mysql_error()); while($data = mysql_fetch_assoc($req2)) { echo '<div class=\'text_bonus\'>Vous venez d utiliser votre clic bonus<div />'; } $sql3 = "UPDATE `jos_acymailing_subscriber` SET `clic_bonus` = '1' WHERE `key` LIKE '$key' AND `subid` LIKE '$subid'"; $req3 = mysql_query($sql3) or die('Erreur dans la base de données<br>'.$sql3.'<br>'.mysql_error()); // Ajout de la participation de l'utilisateur $sql4 = "UPDATE animaux_liste SET clic_int = clic_int + 3,clic_total = clic_int + clic_sms + clic_don + clic_vte,clic_rea_prct = (clic_total / clic_objectif)*100 WHERE id = '$id' AND etat = 1"; $req4 = mysql_query($sql4) or die('Erreur dans la base de données<br>'.$sql4.'<br>'.mysql_error()); } } mysql_close(); ?>
Je ne m'explique pas cette différence, le php est un langage serveur donc tout le monde devrait voir la même chose et il ne devrait pas y avoir de différence entre les utilisateurs. Auriez-vous une idée ?
Bon j'admets aussi que je ne suis pas vraiment un expert en php...
Merci pour votre aide
Partager