无法获取会话以保存数字PHP


cant get session to save number PHP

我对PHP还很陌生,但我正在尝试做一个猜谜游戏。这个想法是你猜测1-100之间的数字,代码意味着有一个随机分配的代码来猜测,直到被猜测,目前只是在分配数字。所以它不会在我每次尝试猜测时都是随机的。

<?php
session_start();
$_SESSION[var_answer] = rand (1, 100);
$var_number = $_REQUEST['number'];
if($var_number == $_SESSION[var_answer]){
    echo " That is correct ;)";
}
else if($var_number <0 || $var_number>100){
    echo " Sorry your guess has to be between 0 and 100";
}else if($var_number==" "||$var_number==""){
    echo " Please take a guess first!";
}else if($var_number < $_SESSION[var_answer]){
    echo " Smaller than mine";
}else if($var_number > $_SESSION[var_answer]){
    echo " Larger than mine";
}
echo '<br/><a href="RNGG.php"> return</a>';
?>

到目前为止,这个数字是随机的,但正如我所说,并不是每次会话都能节省。

看看这个代码:

$_SESSION[var_answer] = rand (1, 100);
$var_number = $_REQUEST['number'];
if($var_number == $_SESSION[var_answer]){
    echo " That is correct ;)";
}

每次重新加载页面时,都会覆盖会话变量。据我所知,你想把号码存储在会话中,直到别人猜到为止。试试这个:

//put a random number into session, if the variable is not defined
if(!isset($_SESSION['var_answer']))
{
    $_SESSION['var_answer'] = rand (1, 100);
}
$var_number = $_REQUEST['number'];
if($var_number == $_SESSION['var_answer']){
    echo " That is correct ;)";
    //undefine the variable if it's guessed
    unset($_SESSION['var_answer']);
}

$_SESSION[var_answer]必须处处更改为$_SESSION['var_answer'],这将解决您的问题。所以你的代码必须是

<?php
session_start();
$_SESSION['var_answer'] = rand (1, 100);
$var_number = $_REQUEST['number'];
if($var_number == $_SESSION['var_answer']){
    echo " That is correct ;)";
}
else if($var_number <0 || $var_number>100){
    echo " Sorry your guess has to be between 0 and 100";
}else if($var_number==" "||$var_number==""){
    echo " Please take a guess first!";
}else if($var_number < $_SESSION['var_answer']){
    echo " Smaller than mine";
}else if($var_number > $_SESSION['var_answer']){
    echo " Larger than mine";
}
echo '<br/><a href="RNGG.php"> return</a>';
?>