Reputation: 39
im fairly new to PHP but I am trying to make a guessing game. the idea is you guess the number between 1-100 and the code is meant to have a randomly assigned code to guess until guessed, currently just working on the assigning the number. so it doesnt randomize everytime I attempt to guess.
<?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>';
?>
so far the number is randomizing but as I said isnt saving per session.
Upvotes: 2
Views: 1274
Reputation: 23749
Look at this code:
$_SESSION[var_answer] = rand (1, 100);
$var_number = $_REQUEST['number'];
if($var_number == $_SESSION[var_answer]){
echo " That is correct ;)";
}
You are overwriting the session variable every time the page is reloaded. As far as I understand, you want to store the number in session, until the person guesses it. Try this:
//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']);
}
Upvotes: 1
Reputation: 11984
$_SESSION[var_answer]
must be changed to $_SESSION['var_answer']
everywhere and it will solve your problem.
So your code must be
<?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>';
?>
Upvotes: 0