par
Ryle » 19 nov. 2007, 20:42
Effectivement, le problème de ton premier code venait du fait que tu n'affichais les valeur que si au moins deux d'entre elles étaient identiques. Avec un différent (!=) et des ET (&&) tu t'assures que toutes les valeurs sont différentes.
De plus la récursivité (l'appel de la fonction à l'intérieur d'elle même) t'assures qu'au final tu auras bien 3 valeurs différentes (alors que précédement, tu pouvais risquer au second tirage d'avoir de nouveau des valeurs identiques)
Enfin, si tu veux pouvoir utiliser tes variables $tir1, $tir2, $tir3 en dehors de la fonction, il te faut les déclarer comme "global", sans quoi leur portée est limitée à l'intérieur de la fonction uniquement.
Pour que la valeur soit associée à un utilisateur toute une journée il te faut stocker ces nombres quelque part. Tu as le choix entre deux endroits : le serveur (base ou fichier) ou le poste client (cookie). L'inconvénient du cookie, c'est que l'utilisateur peut le retrouver et le modifier.
Le mieux reste donc de les stocker dans une base de données. La bdd te permettra également de créer des comptes utilisateurs afin d'identifier l'utilisateur connecté et savoir que c'est à lui que correspondent les nombres tirés. (Tu peux éventuellement te passer du compte utilisateur et te servir de l'adresse IP pour identifier quelqu'un, mais tout le monde n'a pas une IP fixe et il se peut qu'elle change durant la journée). Enfin, il te suffit d'associer la date du jour lorsque tu enregistres le tirage en base et à chaque demande de tirage, vérifier qu'il n'y a pas déjà une entrée en base pour cette date et cet utilisateur. S'il n'y en a pas, tu peux l'ajouter.
(je sais, ça à l'air compliqué comme ça, mais en procédent doucement et par étape tu en viendras à bout

N'hésites pas à jeter un coup d'oeil aux tutos du
Site du Zéro et autre pour créer et manipuler des données en base)
Effectivement, le problème de ton premier code venait du fait que tu n'affichais les valeur que si au moins deux d'entre elles étaient identiques. Avec un différent (!=) et des ET (&&) tu t'assures que toutes les valeurs sont différentes.
De plus la récursivité (l'appel de la fonction à l'intérieur d'elle même) t'assures qu'au final tu auras bien 3 valeurs différentes (alors que précédement, tu pouvais risquer au second tirage d'avoir de nouveau des valeurs identiques)
Enfin, si tu veux pouvoir utiliser tes variables $tir1, $tir2, $tir3 en dehors de la fonction, il te faut les déclarer comme "global", sans quoi leur portée est limitée à l'intérieur de la fonction uniquement. ;)
Pour que la valeur soit associée à un utilisateur toute une journée il te faut stocker ces nombres quelque part. Tu as le choix entre deux endroits : le serveur (base ou fichier) ou le poste client (cookie). L'inconvénient du cookie, c'est que l'utilisateur peut le retrouver et le modifier.
Le mieux reste donc de les stocker dans une base de données. La bdd te permettra également de créer des comptes utilisateurs afin d'identifier l'utilisateur connecté et savoir que c'est à lui que correspondent les nombres tirés. (Tu peux éventuellement te passer du compte utilisateur et te servir de l'adresse IP pour identifier quelqu'un, mais tout le monde n'a pas une IP fixe et il se peut qu'elle change durant la journée). Enfin, il te suffit d'associer la date du jour lorsque tu enregistres le tirage en base et à chaque demande de tirage, vérifier qu'il n'y a pas déjà une entrée en base pour cette date et cet utilisateur. S'il n'y en a pas, tu peux l'ajouter. :)
(je sais, ça à l'air compliqué comme ça, mais en procédent doucement et par étape tu en viendras à bout :) N'hésites pas à jeter un coup d'oeil aux tutos du [url=http://www.siteduzero.com]Site du Zéro[/url] et autre pour créer et manipuler des données en base)