我对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>';
?>