没有工作的PHP随机数(PHP random number not working)

2019-11-03 03:18发布

我想写一个显示随机图像的PHP代码,而该人要猜它是什么。 问题是我的PHP代码告诉我正确的城市是不正确的,我不能找出原因

<?php
$random = rand(1, 3);
$answer ;
if ($random == 1) { $answer = "chicago" ;} 
elseif($random == 2) {$answer = "LA" ;}
elseif($random == 3) {$answer = "NewYork" ;}
else {echo "Answer is None" ; } 
if (isset($_POST["choice"])) {
    $a = $_POST["choice"];
    if($a ==$answer){
    echo "<br> working <br>" ; 
    }else {echo "<br> Not Working <br>";}

}
 ?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>City Guess</title>
</head>
<body>
<center>
<img src="four/Image_<?php echo $random ;?>.jpg" width="960" height="639" alt=""/>

<form action="" method="POST">
chicago <input type= "radio" name="choice" value="chicago"  />
<br>
LA <input type= "radio" name="choice" value="LA" />
<br>
NewYork <input type= "radio" name="choice" value="NewYork" />
<br>
<input type ="submit" value="Submit" />
</form>

</center>
</body>
</html>

Answer 1:

问题是你的逻辑,你不存储用于显示图像生成的数字,而不是您生成一个新的号码每次打开页面的时间。

你应该存储在(例如...)会话中生成的数字保存它,并用它来进行比较。



Answer 2:

你生成你的随机值每次页面加载。 例如,当人第一次访问,并获取形式,可以生成2 。 当提交表单时,您生成另一个值,而这一次是3 。 因此,即使用户正确回答2 ,你说他们错了,因为你已经忘记了您最初问。

你需要存储所产生的价值不知何故,和比较,为响应,如

$rand = rand(1,3);

<input type="hidden" name="correct_answer" value="$rand">


if ($_SERVER["REQUEST_METHOD"] == 'POST') {
   if ($_POST['correct_answer'] == $_POST['user_answer']) {
        echo 'correct';
   }
}


Answer 3:

试试吧:

$random = floor(rand(1, 4));

我希望它能帮助。



Answer 4:

添加下面的隐藏字段在您的形式,使用value="<?php echo $answer ?>" ,它会与你现在的代码打交道。

<input type="hidden" name="correct_answer" value="<?php echo $answer ?>">

物质“O事实上,你甚至不需要name="correct_answer"

做就是了:

<input type="hidden" value="<?php echo $answer ?>">

记住,当你测试,你有一个成功的“1 3”的机会!


编辑

下面是我使用的代码:

<?php
$random = rand(1, 3);
$answer;
if ($random == 1) { $answer = "chicago" ;} 
elseif($random == 2) {$answer = "LA" ;}
elseif($random == 3) {$answer = "NewYork" ;}
else {echo "Answer is None" ; } 
if (isset($_POST["choice"])) {
    $a = $_POST["choice"];
    if($a ==$answer){
    echo "<br> working <br>" ; 
    }else {echo "<br> Not Working <br>";}
}
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>City Guess</title>
</head>
<body>
<center>

<img src="four/Image_<?php echo $random ;?>.jpg" width="960" height="639" alt=""/>

<form action="" method="POST">

<input type="hidden" value="<?php echo $answer ?>">

chicago <input type= "radio" name="choice" value="chicago"  />
<br>
LA <input type= "radio" name="choice" value="LA" />
<br>
NewYork <input type= "radio" name="choice" value="NewYork" />
<br>
<input type ="submit" value="Submit" />
</form>

</center>
</body>
</html>


文章来源: PHP random number not working