Hey i got some problem with session and invalid variable :O IMO i maybe think it can be about PHP_SELF or the variable $nombreentre But i will let u check that:) Thx
<?php
$formulaire = '<FORM method="POST" action="<?php $_SERVER[\"PHP_SELF\"]; ?>">
<p>
<label>Entrez un nombre de 0 a 100 :</label> <input name="nombre" type="text"/>
<input type="submit" value ="Valider !"/>
</p>
</form>' ;
if(isset($_POST['nombre']))
{
$nombreentre = htmlentities(stripslashes($_POST['nombre']));}
if (empty($_SESSION['nombremystere']))
{
$_SESSION['nombremystere'] = mt_rand(0, 100);
echo $formulaire;
}
else
{
if ($_SESSION['nombremystere'] > $nombreentre)
{
echo 'C\'est plus !';
echo $formulaire;
}
elseif ($_SESSION['nombremystere'] < $nombreentre)
{
echo 'C\'est moins !';
echo $formulaire;
}
else
{
echo 'Bravo, vous avez trouve le nombre mystere !';
session_destroy();
}
}
?>
Try this instead:
We are just shifting the closing } of the first IF.
if(isset($_POST['nombre'])) {
$nombreentre = htmlentities(stripslashes($_POST['nombre']));
if (empty($_SESSION['nombremystere']))
{
$_SESSION['nombremystere'] = mt_rand(0, 100);
echo $formulaire;
}
else
{
if ($_SESSION['nombremystere'] > $nombreentre)
{
echo 'C\'est plus !';
echo $formulaire;
}
elseif ($_SESSION['nombremystere'] < $nombreentre)
{
echo 'C\'est moins !';
echo $formulaire;
}
else
{
echo 'Bravo, vous avez trouve le nombre mystere !';
session_destroy();
}
}
}
There are several errors in your code, but the undefined variable error occurs when isset($_POST['nombre'])
and empty($_SESSION['nombremystere'])
both return false.
You need to refine your logic - probably to something more along these lines:
// we can only check for a win if we have an answer *and* the user has made a guess
if(isset($_SESSION['nombremystere']) && isset($_POST['nombre'])) {
$nombreentre = htmlentities(stripslashes($_POST['nombre']));
if ($_SESSION['nombremystere'] > $nombreentre) {
echo 'C\'est plus !';
echo $formulaire;
}
else if ($_SESSION['nombremystere'] < $nombreentre) {
echo 'C\'est moins !';
echo $formulaire;
}
else {
echo 'Bravo, vous avez trouve le nombre mystere !';
session_destroy();
}
}
// either the user hasn't submitted a guess, or we haven't generated a random number for them to guess
else {
$_SESSION['nombremystere'] = mt_rand(0, 100);
echo '<form method="post" action="' . $_SERVER["PHP_SELF"] . '">
<p>
<label>Entrez un nombre de 0 a 100 :</label> <input name="nombre" type="text"/>
<input type="submit" value ="Valider !"/>
</p>
</form>';
}