Soucis devine le nombre
- Accueil
- Forum
- Programmation
- PHP
- Soucis devine le nombre
Geromitchi Le 26 novembre 2016 à 23:53 (Édité le 25 janvier 2019 à 17:52)
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 Le 27 novembre 2016 à 00:01 (Édité le 1 janvier 1970 à 01:00)
Ç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 Le 27 novembre 2016 à 00:03 (Édité le 1 janvier 1970 à 01:00)
Sa été modifé mais sa ne fonctionne toujours pas ^^
Balatharas Le 27 novembre 2016 à 11:30 (Édité le 1 janvier 1970 à 01:00)
<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 Le 27 novembre 2016 à 14:04 (Édité le 1 janvier 1970 à 01:00)
TheFlameflo Le 27 novembre 2016 à 16:46 (Édité le 1 janvier 1970 à 01:00)
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 Le 27 novembre 2016 à 21:07 (Édité le 1 janvier 1970 à 01:00)
<?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 Le 27 novembre 2016 à 21:31 (Édité le 27 novembre 2016 à 21:31)
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 Le 27 novembre 2016 à 21:36 (Édité le 1 janvier 1970 à 01:00)
TheFlameflo Le 27 novembre 2016 à 22:31 (Édité le 1 janvier 1970 à 01:00)
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 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