cs_F0ozZy
Messages postés1Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention29 mars 2011
-
29 mars 2011 à 18:41
007Julien
Messages postés276Date d'inscriptionmercredi 22 septembre 2010StatutMembreDernière intervention 8 janvier 2014
-
29 mars 2011 à 19:44
Bonjour à tous,
Depuis pas mal de temps, je m'efforce à créer une petite loterie pour mon petit site famillial et amical, tout en apprenant le php. J'ai réussi à le créer en fouinant sur la toile mais le réultat ne me satisfait pas. C'est une loterie à 20n°, ils doivent choisir 3n° sur les 20 et les gagnants seront ceux, qui auront trouvés 2 ou 3n°... C'est la que je bloque... J'arrive à faire gagner ceux qui trouvent les 3n° et pas ceux qui trouvent 2n°.
Merci d'avance pour vos petits coups de pouce.
Voici un bout de "mon code":
007Julien
Messages postés276Date d'inscriptionmercredi 22 septembre 2010StatutMembreDernière intervention 8 janvier 20144 29 mars 2011 à 19:44
La meilleure solution consisterait à stocker les numéros gagnant dans un fichier dont le nom reprendrait le mois et le quantième du jour (voir la méthode Date("md") pour avoir une date mmdd susceptible de classement).
Alors la lecture du répertoire correspondant (voir readdir) permettrait de procéder à un nouveau tirage (voir random pour le tirage) si nécessaire (premier client, pas de fichier à la date du jour - voir fopen et fwrite pour le constituer) puis de lire les numéros (file_get_contents) et de les insérer dans un tableau (explode et array_flip) qui permettrait en disposant d'un tableau nos => rang d'opérer les tests comme suit :
// Lecture du fichier du jour
$cnt=file_get_contents("numéros0329.txt");
// contient par exemple 5,7,13 les numéros gagnants
$tns=explode(',',$cnt);// un tableau 0=>5,1=>7,2=>13
print_r($tns); // voir son contenu
$nos=array_flip($tns);// Le même tableau en inversant les clefs et valeurs 5=>0,7=>1,13=>2
print_r($nos);// pour voir
// Les numéros proposés, sans zéro additionnels, sont supposés simplement séparés par des espaces blancs
$numero = strip_tags(htmlspecialchars(addslashes(trim($_POST['key']))));
$nosPrp=explode(' ',$numero);
$cmpNum=0 // compteur de numéro gagnants
// comptage des numéros gagnant si la clef correspondante existe
foreach ($nmPrp as $k=>$v) if (isset($nos[$v])) cmpNum++;
// Actions suivant valeurs du compteur