Soucis devine le nombre

Suivre ce topic
Ce topic est suivi par : Personne...
Ce topic a été résolu
Geromitchi

Geromitchi Le 26 novembre 2016 à 23:53 (Édité le 25 janvier 2019 à 17:52)

Bonjour,
J'essaye de me faire un petit système pour qu'un utilisateur trouve le nombre tous semble correct mais il y'a un soucis.. quand j'entre un chiffre il m'affiche toujours "Veuillez introduire un nombre"...
<?php 
$number=rand(0,10);
if (isset($_POST['Sub'])) {
   if (isset($_GET['chiffre']) AND !empty($_POST['chiffre'])) {
      $chiffre = intval($chiffre);
      while ($chiffre != $number) {
         if ($chiffre > $number) {
            $error = "Trop haut";
         }
         else{
            $error= "Trop bas";
         }
      }
      if ($chiffre == $number) {
         $msg = "Vous avez trouvé le bon chiffre !";
      }
      
   }
   else{
      $error = "Veuillez introduire un chiffre !";
   }
}
?>
<form method="POST">
   <input type="text" placeholder="Entrez votre chiffre !" name="chiffre"></input>
   <input type="Submit" value="Envoyez !" name="Sub"></input>
</form>
<?php 
if (isset($error)) {
   echo $error;
}
if (isset($msg)) {
   echo $msg;
}
?>
Merci
TheFlameflo

TheFlameflo Le 27 novembre 2016 à 00:01

Salut !
Ça vient de ta 2ème condition :
if (!isset($_GET['chiffre']) AND !empty($_POST['chiffre']))
Je ne vois nul part dans ton code où tu utilises GET.
En d'autres mots, s'il n'y a pas ?chiffre=unchiffre dans ton URL, la condition avec GET ne sert à rien.

Bonne chance et j'espère t'avoir aidé ! 😀
Geromitchi

Geromitchi Le 27 novembre 2016 à 00:03

Salut !
Sa été modifé mais sa ne fonctionne toujours pas ^^
Balatharas

Balatharas Le 27 novembre 2016 à 11:30

Désolé je ne vois pas le problème, mais en tout cas les input:
<input type="text" placeholder="Entrez votre chiffre !" name="chiffre"></input>
<input type="Submit" value="Envoyez !" name="Sub"></input>
Ne se ferme pas comme ça, ce sont des balises auto-fermantes (c'est comme ça qu'on dit si je me souviens bien 😋)
C'est plutôt:
<input type="text" placeholder="Entrez votre chiffre !" name="chiffre" />
<input type="Submit" value="Envoyez !" name="Sub" />
Geromitchi

Geromitchi Le 27 novembre 2016 à 14:04

Salut beignet merci de ta réponse oui j'ai rectifier cela mais sa ne fonctionne toujours pas !
TheFlameflo

TheFlameflo Le 27 novembre 2016 à 16:46

Salut !

En fait, j'ai regardé ton code une seconde fois et j'ai trouvé plusieurs erreurs.

#1 : supprime le isset avec GET
#2 : la variable chiffre contient la variable chiffre.  Mais, la variable chiffre n'a pas été créée encore, remplace la valeur de intval par $_POST['chiffre'¸].
#3 : ta boucle est infinie, enlève ça et modifie le 1er else par une condition.
#4 : le chiffre que tu génères ne restera pas, il sera différent à chaque page. Tu peux essayer de le mettre en session pour le garder.

Bonne chance ! 😀
Geromitchi

Geromitchi Le 27 novembre 2016 à 21:07

Salut merci de ta réponse j'y avais pensé au $_SESSION mais le soucis c'est que même dans un $_SESSION le chiffre fais que changer..
<?php 
$number=rand(0,10);
$_SESSION['number'] = $number;
if (isset($_POST['Sub'])) {
    if (isset($_POST['chiffre']) AND !empty($_POST['chiffre'])) {
        $chiffre = intval($_POST['chiffre']);
            if ($_POST['chiffre'] > $_SESSION['number']) {
                $error = "Trop haut";
            }
            if ($_POST['chiffre'] < $_SESSION['number']) {
                $error= "Trop bas";
            }
        if ($_SESSION['number'] == $_POST['chiffre']) {
            $msg = "Vous avez trouvé le bon chiffre !";
        }
    }
    else{
        $error = "Veuillez introduire un chiffre !";
    }
}
?>
TheFlameflo

TheFlameflo Le 27 novembre 2016 à 21:31 (Édité le 27 novembre 2016 à 21:31)

Avant d'initialiser la variable de session, regarde bien s'il existe ( isset($_SESSION['number']) ) et s'il n'est pas vide.
S'il n'existe pas, tu la crées.

Aussi, si l'utilisateur trouve le bon chiffre, tu supprimes la session ( session_destroy() ).

N'oublies pas d'ajouter session_start() au début ! 😀
Geromitchi

Geromitchi Le 27 novembre 2016 à 21:36

Comment sa je regarde si elle existe ? Car $_SESSIONS['number'] c'est un chiffre aléatoire..
TheFlameflo

TheFlameflo Le 27 novembre 2016 à 22:31

J'ai peut-être mal compris le jeu aussi :
1 - Veux-tu que le nombre change à chaque fois ex :
1er essai : nombre à trouver : 5
2ème essai : nombre à trouver  : 9
2 - Préfères-tu que le chiffre reste le même jusqu'à ce que l'on trouve la réponse ?
1 : 4
2 : 4
3 : 4 -> trouvé
4 : 6
etc.

Balatharas

Balatharas Le 28 novembre 2016 à 16:22 (Édité le 28 novembre 2016 à 16:28)

2 - Préfères-tu que le chiffre reste le même jusqu'à ce que l'on trouve la réponse ? 
@TheFlameFlo Bah oui sinon ça a pas d'interet..

Sinon moi je pensais a utiliser un tableau pour contenir le nombre du genre:
$listnbr = ['1','2','3','4','5','6','7','8','9','10'];
$number = array_rand($listnbr, [0,1]);
EDIT: J'ai pas testé la fonction sur sublime text, donc je sais pas si le 2nd paramètre est correct, mais voilà la doc:
Fonction array_rand
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte