Php 当我自我提交时,是否需要设置一次变量值
我试图用PHP制作这个简单的猜测数字。问题是,一旦我将此表单提交给自己,$number变量将再次随机化,而不是保留以前的值。有没有办法保持原样Php 当我自我提交时,是否需要设置一次变量值,php,Php,我试图用PHP制作这个简单的猜测数字。问题是,一旦我将此表单提交给自己,$number变量将再次随机化,而不是保留以前的值。有没有办法保持原样 <?php $run_once = true; $number = 10; $user_input = 1; $display_answer = ""; function seedRandNumber() { srand((double) microtime() * 1000000);
<?php
$run_once = true;
$number = 10;
$user_input = 1;
$display_answer = "";
function seedRandNumber() {
srand((double) microtime() * 1000000);
$num = rand(1, 25);
return $num;
}
if ($run_once) {
$number = seedRandNumber();
$run_once = false;
}
function answer($input) {
$num = $GLOBALS['number'];
if ($input == $num) {
return "You guess it right";
} else if ($input > $num) {
return "it is a lower number";
} else {
return "it is a high number";
}
}
if (isset($_POST["number"])) {
$user_input = $_POST["number"];
$display_answer = answer($_POST["number"]);
}
if (isset($_POST["newgame"])) {
$number = seedRandNumber();
}
?>
<h1>Guess Number</h1>
<p1>Please enter a number between 1 and 25</p1>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
Number: <input type="text" name="number" value="<?php echo $user_input; ?>"> <input type="submit" name="submit" value="Submit"> <br>
<p2><?php echo $display_answer; ?></p2><br>
<br>
<input type="submit" name="newgame" value="New Game">
</form>
您可以在会话中存储号码,然后仅在需要时创建新号码:
start_session();
if(!isset($_SESSION['number']) || isset($_POST['newgame'])) {
$number = seedRandNumber();
$_SESSION['number'] = $number;
}
else {
$number = $_SESSION['number'];
}
你需要把它放在程序的开头。或者把它写到db\file除非这是一件有教育意义的事情,否则我不认为使用PHP进行简单的数字猜测游戏有什么意义。JavaScript可以完成任务,而不必担心帖子、会话等问题。@Andrewene如果猜测的数字存储在JS中,那么很容易作弊。你是什么意思?就像用户可以访问JS变量的内容一样?即使是这样,他们在一个小小的网络游戏上作弊能得到什么?除非有奖品什么的。谢谢,我不知道这个环节。