Création d'un site de loterie

Petit nouveau ! | 7 Messages

20 févr. 2020, 21:32

Bonjour à tous,

Pour le cours de Sciences numériques et informatiques, je dois coder un site qui sera évalué. J ai décidé de coder un site e commerce.
J ai décider de faire une page loterie ou je suis supposé faire gagner des lots. J ai donc voulu coder un système de random number où l'utilisateur saisi un nombre entre 1 et 100. Si son nombre est égal au nombre tiré au sort, un simple echo lui disant qu il a gagné apparait, sinon un echo lui dit le contraire.

OR, j ai un problème avec mon php et je ne vois pas du tout où est l erreur. Voici le formulaire html et le script php:
<div id="lesjeuxdehasard">

<div>

    <div>

      <h2> Tentez de gagner une lamborghini veneno !</h2>
      <p>Saisissez un nombre entre 1 et 100. Si votre nombre est tiré au sort, vous avez gagné.</p>
      
      <div>

      <form method="post" action="hasard.php">
 
      <input type="text" name="votrenbre1">  <input type="submit" name="submit1" value="250 000$">

      </form>

    </div>

  </div>
    



    <div>

        <h2> Tentez de gagner un iPhone 11 Pro !</h2>
        <p>Saisissez un nombre entre 1 et 100. Si votre nombre est tiré au sort, vous avez gagné.</p>
   
        <div>

            <form method="post" action="hasard.php">
 
            <input type="text" name="votrenbre2">  <input type="submit" name="submit2" value="350$">

            </form>

        </div>

    </div>

    <div>

        <h2> Tentez de gagner un code promo de 75% !</h2>
        <p>Saisissez un nombre entre 1 et 100. Si votre nombre est tiré au sort, vous avez gagné.</p>
   
        <div>

            <form method="post" action="hasard.php">
 
            <input type="text" name="votrenbre3">  <input type="submit" name="submit3" value="200$">

            </form>

        </div>

    </div>

    <div>

        <h2> Tentez de gagner un code promo de 50% !</h2>
        <p>Saisissez un nombre entre 1 et 100. Si votre nombre est tiré au sort, vous avez gagné.</p>
   
        <div>

        <form method="post" action="hasard.php">
 
        <input type="text" name="votrenbre4">  <input type="submit" name="submit4" value="150$">

        </form>

        </div>

    </div>

</div>

<?php

if (isset($_POST["submit1"])) {

      $randomnumber1  = rand(0, 100)

      if ((isset($_POST["votrenbre1"]))==($randomnumber1)){

      echo " Félicitaions: Vous avez remporter une lamborghini veneno !"

      else{

      echo "Presque ! Vous aurez sûrement plus de chance la prochaine fois !"

      }

      }

}

if (isset($_POST["submit2"])) {

      $randomnumber2  = rand(0, 100)

      if ((isset($_POST["votrenbre2"])==($randomnumber2)){

      echo " Félicitaions: Vous avez remporter un iPhone 11 !"

      else{

      echo "Presque ! Vous aurez sûrement plus de chance la prochaine fois !"

      }

      }

}

if (isset($_POST["submit3"])) {

      $randomnumber3  = rand(0, 100)
      
      if ((isset($_POST["votrenbre3"])==($randomnumber3)){

      echo " Félicitaions: Vous avez remporter un code promo de 75% !"

      else{

      echo "Presque ! Vous aurez sûrement plus de chance la prochaine fois !"

      }

      }


}

if (isset($_POST["submit4"])) {

      $randomnumber4  = rand(0, 100)      

      if ((isset($_POST["votrenbre4"])==($randomnumber4)){

      echo " Félicitaions: Vous avez remporter un code promo de 50% !"

      else{

      echo "Presque ! Vous aurez sûrement plus de chance la prochaine fois !"

      }

      }

}

?>
Selon wampserver, le problème vient des if testant si le nombre saisi est égal au random number. Quelqu'un peut-il m'aider ?
PS: Si vous avez le moindre conseil ou une remarque quelconque, je suis preneur !

Avatar du membre
Mammouth du PHP | 1609 Messages

20 févr. 2020, 23:27

Bonsoir, les testes ne sont pas bons
if ((isset($_POST["votrenbre1"]))==($randomnumber1)){
ça devrait être écris
if (isset($_POST["votrenbre1"]) && $_POST["votrenbre1"] == $randomnumber1){// voir === au lieu de == pour une égalité stricte
car isset($_POST["votrenbre1"]) retourne un booléen true ou false et donc ton teste résulte en un true ou false == un numéro.
Développeur web depuis + de 20 ans

Petit nouveau ! | 7 Messages

21 févr. 2020, 00:09

Bonsoir, les testes ne sont pas bons
if ((isset($_POST["votrenbre1"]))==($randomnumber1)){
ça devrait être écris
if (isset($_POST["votrenbre1"]) && $_POST["votrenbre1"] == $randomnumber1){// voir === au lieu de == pour une égalité stricte
car isset($_POST["votrenbre1"]) retourne un booléen true ou false et donc ton teste résulte en un true ou false == un numéro.
Bonsoir et merci de ton aide !
Malheureusement j'ai essayé avec ta rectification mais ça ne fonctionne toujours pas #-o et wamp m'indique que l'erreur se trouve toujours sur cette ligne...
Je ne comprends vraiment pas la cause du problème !

Avatar du membre
Mammouth du PHP | 1609 Messages

21 févr. 2020, 00:24

Selon wampserver, le problème vient des if testant si le nombre saisi est égal au random number.
Quel est le message d'erreur précisément ? si tu veux comprendre la cause, il faut déjà comprendre le message d'erreur.
Développeur web depuis + de 20 ans

Eléphant du PHP | 53 Messages

21 févr. 2020, 01:15

Salut joker

En fait, tu as beaucoup d'erreurs. Tu as oublié les " ; " (point virgule) un peu partout.
C'est indispensable en php.

Ensuite tu as des accolades aux mauvais endroits.

a+
Pourquoi faire simple quand on peut faire compliqué ?

Eléphant du PHP | 53 Messages

21 févr. 2020, 01:52

Re-salut

Une fois ces petites erreurs corrigées j'ai testé ton jeu. Je gagne à tous les coups.
Il semble y avoir une faute dans ta condition if.

Tu me dois donc plusieurs Lamborghinis veneno présentement.
Mais je vais me contenter d'une seule ( livraison gratuite bien sûr). :D

a+
Pourquoi faire simple quand on peut faire compliqué ?

Petit nouveau ! | 7 Messages

21 févr. 2020, 14:11

Re-salut

Une fois ces petites erreurs corrigées j'ai testé ton jeu. Je gagne à tous les coups.
Il semble y avoir une faute dans ta condition if.

Tu me dois donc plusieurs Lamborghinis veneno présentement.
Mais je vais me contenter d'une seule ( livraison gratuite bien sûr). :D

a+
Bonjour,
Effectivement, après avoir mis des points virgules et placé les accolades au bon endroit, cela fonctionne !
Par contre, je ne fais que perdre contrairement à toi XD, tu sembles avoir beaucoup de chance. Tu recevras ta lambo dès que possible :D.
Je tiens à remercier tous ceux qui m'ont aidé, ça fait vraiment plaisir !
Merci de votre réactivité et bonne continuation.

Avatar du membre
Mammouth du PHP | 1609 Messages

21 févr. 2020, 14:19

Par contre, je ne fais que perdre contrairement à toi XD, tu sembles avoir beaucoup de chance.
Non il n'a pas beaucoup de chance, c'est juste les testes qui n'étaient pas bon et auxquels il n'a pas du intégrer la correction :P

Tous ces testes sont vrais :
true == 1;
true == 33;
true == 99;

Le seul cas où il aurait pu perdre est true == 0, soit une probabilité de 1/101 ^^
Développeur web depuis + de 20 ans