Php会话变量错误

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>';
}