一个不能正确回显的小骰子游戏
A little dice game that does not echo properly
这是一个骰子游戏,当用户选择一个数字并点击提交时,页面随机显示一个骰子上的数字,如果用户猜对了它应该说是你猜对了,否则会说对不起您错了。但是当数字匹配时它不会回显 "you guessed right!" 。问题出在哪里?它说对不起无论如何都是错的。非常感谢!
<html>
<body>
<h1>Dice Game!</h1>
<h1>"Please guess a number on the dice!"</h1>
<?php
if ($_POST['subBtn']) {
$num = $_POST['number'];
if ($num == "$roll") {
$comment = "you guessed right!";
} else if ($num != "$roll") {
$comment = "sorry it's wrong!";
}
}
?>
<p>
<form name="number" action="activity-dice-game.php" method="post">
<select name="number">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
<input type="submit"name="subBtn" value="submit"/></input>
</form>
</p>
<?php
$roll = rand(1,6);
echo "<p>You rolled a " . $roll . ". </p>";
echo "<img src=\"images/die" . $roll . ".gif\" alt=\"die image\">";
?>
</b> <? echo $comment; ?><br />
</body>
</html>
问题是,当您加载表单时,当您检查用户提交的 $num
是否等于它时,$roll
设置为空!这意味着无论
if($num == $roll)
相当于:
if($num == null)
这永远不会是真的!
只需将 $roll = rand(1,6)
放在脚本的顶部。
这应该有效:
<html>
<body>
<h1>Dice Game!</h1>
<h1>"Please guess a number on the dice!"</h1>
<?php
if ($_POST['subBtn']) {
$num = $_POST['number'];
$roll = rand(1,6);
if ($num == "$roll") {
$comment = "you guessed right!";
} else if ($num != "$roll") {
$comment = "sorry it's wrong!";
}
}
?>
<p>
<form name="number" action="activity-dice-game.php" method="post">
<select name="number">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
<input type="submit"name="subBtn" value="submit"/></input>
</form>
</p>
<?php
echo "<p>You rolled a " . $roll . ". </p>";
echo "<img src=\"images/die" . $roll . ".gif\" alt=\"die image\">";
?>
</b> <? echo $comment; ?><br />
</body>
</html>
这是一个骰子游戏,当用户选择一个数字并点击提交时,页面随机显示一个骰子上的数字,如果用户猜对了它应该说是你猜对了,否则会说对不起您错了。但是当数字匹配时它不会回显 "you guessed right!" 。问题出在哪里?它说对不起无论如何都是错的。非常感谢!
<html>
<body>
<h1>Dice Game!</h1>
<h1>"Please guess a number on the dice!"</h1>
<?php
if ($_POST['subBtn']) {
$num = $_POST['number'];
if ($num == "$roll") {
$comment = "you guessed right!";
} else if ($num != "$roll") {
$comment = "sorry it's wrong!";
}
}
?>
<p>
<form name="number" action="activity-dice-game.php" method="post">
<select name="number">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
<input type="submit"name="subBtn" value="submit"/></input>
</form>
</p>
<?php
$roll = rand(1,6);
echo "<p>You rolled a " . $roll . ". </p>";
echo "<img src=\"images/die" . $roll . ".gif\" alt=\"die image\">";
?>
</b> <? echo $comment; ?><br />
</body>
</html>
问题是,当您加载表单时,当您检查用户提交的 $num
是否等于它时,$roll
设置为空!这意味着无论
if($num == $roll)
相当于:
if($num == null)
这永远不会是真的!
只需将 $roll = rand(1,6)
放在脚本的顶部。
这应该有效:
<html>
<body>
<h1>Dice Game!</h1>
<h1>"Please guess a number on the dice!"</h1>
<?php
if ($_POST['subBtn']) {
$num = $_POST['number'];
$roll = rand(1,6);
if ($num == "$roll") {
$comment = "you guessed right!";
} else if ($num != "$roll") {
$comment = "sorry it's wrong!";
}
}
?>
<p>
<form name="number" action="activity-dice-game.php" method="post">
<select name="number">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
<input type="submit"name="subBtn" value="submit"/></input>
</form>
</p>
<?php
echo "<p>You rolled a " . $roll . ". </p>";
echo "<img src=\"images/die" . $roll . ".gif\" alt=\"die image\">";
?>
</b> <? echo $comment; ?><br />
</body>
</html>