【问题标题】:Random number generator game in PHP using a formPHP中使用表单的随机数生成器游戏
【发布时间】:2016-03-07 12:41:36
【问题描述】:

我正在尝试创建一个网页,提示用户猜测从 1 到 5 的数字,该数字是随机生成并存储在表单中的。

然后,当提交表单时,会根据随机数检查猜测,如果猜测不正确,则会提示用户再次猜测,但每次猜测的随机值保持不变。

我的问题是,一旦用户提交表单,当提示用户重试时,随机数没有显示出来。

else if (isset($_POST["firstname"])) {
    echo $_POST['firstname'] . $_POST['lastname'];
    echo "Hi " . $_POST['firstname'] . " " . $_POST['lastname'] . "!";
    ?>
    <html>
        <form name="number" action="random.php" method="post">
            <p>Enter a guess: <input type="text" name="guess" /></p>
            <input type="hidden" name="numtobeguessed" value="<?php echo $_POST["numtobeguessed"]; ?>" ></p>
            <input type="submit" value="Guess!" />
        </form>
    </html>
    <?php
    $_POST["numtobeguessed"] = rand(1, 5);
    $guessed = $_POST["numtobeguessed"];
    echo "Number to be guessed " . $guessed;

} else if (isset($_POST["guess"])) {
    if ($_POST["guess"] != $_POST["guessed"]) {
        echo $_POST["guess"] . " is not correct";
        ?>
        <form name="number1" action="random.php" method="post">
            <p>Enter a guess: <input type="text" name="guess" /></p>
            <input type="hidden" name="numtobeguessed" value="<?php echo $_POST["guessed"]; ?>" ></p>
            <input type="submit" value="Guess!" />
            <?php
        }
    }
    ?>

【问题讨论】:

  • 附带说明,我建议使用$_POST 而不是$_REQUEST。我不知道你为什么同时使用这两个。此外,您不需要在 if 语句中使用 == true
  • 这段代码是用于random.php的吗?
  • 为什么您的代码以else if 开头?在此之前是否有可能干扰的代码?
  • @Jonathan 在此之前有代码可以工作。我没有包括它以节省空间。我发布的代码是我遇到问题的地方。
  • 逻辑是否应该始终检查$_POST["guess"] 是否有值?即当$_POST['numtobeguessed'] 有一个值时,guess 可以有一个用户输入的值?

标签: php html forms random


【解决方案1】:

您在名称为numtobeguessed 的字段中发送值,但您尝试使用名称guessed 读取它。

这个:

if ($_POST["guess"] != $_POST["guessed"]) {

应该是:

if ($_POST["guess"] != $_POST["numtobeguessed"]) {

还有这个:

<input type="hidden" name="numtobeguessed" value="<?php echo $_POST["guessed"]; ?>" ></p>

应该是:

<input type="hidden" name="numtobeguessed" value="<?php echo $_POST["numtobeguessed"]; ?>" ></p>

【讨论】:

    猜你喜欢
    • 2015-06-19
    • 2016-11-19
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    相关资源
    最近更新 更多