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($_POST['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 type="Submit" value="Envoyez !" name="Sub"/>
</form>
<?php
if (isset($error)) {
echo $error;
}
if (isset($msg)) {
echo $msg;
}
?>
Merci
Bonsoir, avec ton 1er if
tu teste l'absence de variable
<?php
$number=rand(0,10);
if (isset($_POST['Sub'])) {
if (isset($_POST['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 !";
}
}
?>
Salut,
Le soucis c'est que sa tourne dans le vide en me mettant une erreur de temps depasser + le $chiffre non definis ...
Tu ne déclare pas le fait que ta variable POST
est =
à $chiffre
donc forcément pour lui tu n'a pas rentré de valeur !
<?php
$number= rand(0,10);
if (isset($_POST['Sub'])) {
if (isset($_POST['chiffre']) AND empty($_POST['chiffre'])) {
$chiffre = $_POST['chiffre'];
if($chiffre != $number) {
if ($chiffre > $number)
{
$error = "Trop haut";
}
else { $error= "Trop bas"; }
}
elseif($chiffre == $number) { $msg = "Vous avez trouvé le bon chiffre !"; }
}
else { $error = "Veuillez introduire un chiffre !"; }
}
?>
Après fait gaffe à ton intval
Bonjour,
Juste une question : c'est normal de regénérer le nombre aléatoire à chaque tentative ?
Huggy<br />
Bonjour,
Juste une question : c'est normal de regénérer le nombre aléatoire à chaque tentative ?</blockquote>
Il a peut-être raison le fait de recharger la page fait que tu as un nouveau nombre ! Je sais que j'avais essayer aussi de créer un système avec un nombre mais ça reste compliquer ! Je rajoutais un <input type="hidden" value="mon_nombre" />
pour que ça fonctionne ! En plus toi tu veut que l'utilisateur devine le nombre en lui disant plus haut, plus bas.
<!-- Ton form -->
<form method="post" action="ma_page.php">
<input type="HIDDEN" value="<?php echo $chiffre; ?>" >
<input type="text" placeholder="Rentrez un chiffre" >
<input type="submit" value="Essayer" >
</form>
Et excuse moi, je n'avais pas fait gaffe mais :
php.net<br />
empty — Détermine si une variable est vide</blockquote>
Donc en faite il fallait que tu mette :
<!-- Le PHP au début de la page -->
<?php
$number= rand(0,10);
if (isset($_POST['Sub'])) {
if (isset($_POST['chiffre']) AND !empty($_POST['chiffre'])) {
//Ton code de vérification
}
?>
Salut,
Toujours rien ..
J'ai fais passez le chiffre aléatoire dans une variable pour qu'elle reste la même..
Mais sa tourne toujours dans le vide..
<?php
$number=rand(0,10);
if (isset($_POST['Sub'])) {
if (isset($_POST['chiffre']) AND !empty($_POST['chiffre'])) {
$chiffre = intval($chiffre);
while ($_POST['chiffre'] != $_SESSION['number']) {
if ($_POST['chiffre'] > $_SESSION['number']) {
$error = "Trop haut";
}
else{
$error= "Trop bas";
}
}
if ($_SESSION['number'] == $_POST['chiffre']) {
$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 type="Submit" value="Envoyez !" name="Sub"/>
</form>
<?php
var_dump($_POST['chiffre']);
if (isset($error)) {
echo $error;
}
if (isset($msg)) {
echo $msg;
}
?>
Vous avez des problèmes d'algorithmes, surtout si la valeur à chercher est 0 car empty(0)=True donc la condition isset AND !empty ne fonctionnera pas il vaut mieux choisir un OR dans ce cas, de plus intval(abc)=0 donc le résultat de votre algorithmes sera bon alors que ce n'est pas le cas
<?php
session_start();
$limits = ['min' => 0, 'max' => 10];
if (empty($_SESSION['number'])) {
$_SESSION['number'] = rand($limits['min'], $limits['max']);
}
$number = $_SESSION['number'];
if (isset($_POST['Sub'])) {
if ((isset($_POST['chiffre']) OR !empty($_POST['chiffre'])) AND (is_int($_POST['chiffre']))) {
$chiffre = intval($_POST['chiffre']);
if ($chiffre > $number) {
$message = 'Trop haut';
} elseif ($chiffre < $number) {
$message = 'Trop bas';
} else {
$message = 'Vous avez trouvé le bon chiffre !';
unset($_SESSION['number'], $number);
}
} else {
$message = "Veuillez introduire un chiffre !";
}
}