Loterie - problèmes liés aux numéros gagnants

cs_F0ozZy Messages postés 1 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 29 mars 2011 - 29 mars 2011 à 18:41
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Derniè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":

<?php
$contenu = 'lotoami';
setcookie("lotoami", $contenu, time()+86400);
?>

<html>
<head>
</head>


<?php
$numero = strip_tags(htmlspecialchars(addslashes(trim($_POST['key']))));
$numero = str_replace(' ','',$numero);

if (isset($_COOKIE["lotoami"]))

{

echo '

<center>Je suis désolé, tu as déjà tenté ta chance aujourd'hui...</center>
';

}

else

{

if ($numero == '010203') <- Dans mon cas, j'aimerai que '0102' '0103' '0203' et '010203' soit des combinaisons gagnantes
{

echo 'Bravo tu as gagné 1 Allopass B !
Merci de remplir le formulaire ci-dessous pour recevoir ton lot !


<form action="send_email.php" method="post">

Bonne soirée à tous

1 réponse

007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
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
0
Rejoignez-nous