我的随机数在页面加载时生成,但似乎在用户点击"猜猜"按钮。我仍然有很多建设可以使用它,但最后我希望用户能够进行多次猜测来猜测随机数。我希望它在页面首次出现时生成并保持不变直到正确猜到。我不确定我做错了什么,只是启动了这个程序。如果您回答,请解释,因为我正在努力学习我正在做的事情。谢谢!
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>PHP Homework 2</title>
<link rel="stylesheet" href="styles/styles.css">
</head>
<body>
<section id="main">
<h1>Play the Guessing Game!</h1>
<section id="left">
<h2>Take a Guess!</h2>
<form action="mine.php" method="post">
<div id="guessBox">
<label id="guessLB">Your Guess:</label>
<input id="guessTB" class="num" type="number" name="guessTB" max="1000" min="1">
</input>
</div>
<input type="submit" id="guessButton" name="guessBTN" value="Guess" />
</form>
</section>
<section id="right">
<h2>Game Stats</h2>
<?php
if(isset($_POST['guessTB']))
{
$randomNum = $_POST['guessTB'];
}
else
{
$randomNum = rand(1,100);
}
echo "<p>Random Number: $randomNum</p>";
?>
</section>
</section>
</body>
</html>
更新:我的HTML保持不变,我发布了新的PHP代码。但是我用了一个会话并写了更多。但是,我遇到了两个问题:
1)如果我刷新页面,则会收到错误消息,指出$randomNum
下面的session_start();
的第一个实例未被识别。
2)它似乎记得我在游戏中的最后一次猜测。如果我关闭页面并重新打开它,我会立即得到一条我猜的太高或太低的消息,甚至在做出猜测之前。任何建议表示赞赏!
<?php
session_start();
$randomNum = $_SESSION['randomNum'];
$guess = $_POST['guessTB'];
if(!isset($_SESSION['randomNum']))
{
$_SESSION['randomNum'] = rand(1,1000);
}
else
{
if($guess < $randomNum)
{
echo "<p>Your Guess is Too Low! Try Again!</p>";
}
else if($guess > $randomNum)
{
echo "<p>Your Guess is Too High! Try Again!</p>";
}
else
{
echo "<p>You Won!</p>";
$_SESSION = array();
session_destroy();
}
}
echo "<p>Guess: $guess</p>";
echo "<p>Random Number: $randomNum</p>";
?>
答案 0 :(得分:2)
你可以做的是使用会话。在每次加载检查时,如果您在会话中设置它并且如果未设置它,则生成新数字并进行设置,然后检查用户输入的内容并比较这两个数字。这也可以用cookies完成。你可以做的另一件事是使用js。在加载时将生成的数字存储在某些js变量中,并且不使用表单。单击按钮,获取输入字段的值,并与存储在变量中的值进行比较。