You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP猜大小游戏POST表单提交无任何返回结果求助

PHP Higher or Lower游戏POST请求无反馈问题

我正在使用PHP开发一款Higher or Lower(猜大小)游戏,目前其余功能均已完成,但遇到了POST请求相关问题。当用户填写完choice、bet、number三个字段并点击“Play”按钮后,页面无任何反馈,不会显示赢/输/平局的提示信息。

以下是完整代码:

<form action="" method="post">
    <div id="test-container">
    
    <select class="form-control" id="choice" name="choice">
        <option value="">Select 'High' or 'Low'...</option>
        <option value="1">High</option>
        <option value="2">Low</option>
    </select>

    <br>

    <?
        echo "<select class=\"form-control\" id=\"bet\" name=\"bet\">";
        echo "<option value=\"\">Please place your bet...</option>";
        for($bet = 1; $bet <= 50; $bet++) echo "<option value='$bet'>$bet</option>";
        echo "</select>";
    ?>

    <br>

    <?
        echo "<select class=\"form-control\" id=\"number\" name=\"number\">";
        echo "<option value=\"\">Please select a number...</option>";
        for($number = 1; $number <= 100; $number++) echo "<option value='$number'>$number</option>";
        echo "</select>";
    ?>

    </div>
    <br><br><button id="submit" type="submit" type="button" name="play" class="btn btn-primary">Play!</button>
    
    <?

        if(isset($_POST['play']))
        {
            $invalid_choice = 0;
            $invalid_bet = 0;
            $invalid_number = 0;
            $won = 0;

            $choice = $_POST['choice'];
            $bet = $_POST['bet'];
            $number = $_POST['number'];

            $random_number = rand(1, 100);
            $rhash = generateRandomString();

            if(!$choice)
            {
                $invalid_choice = 1;

                echo "<br><br>" . "<div class=\"alert alert-danger\" role=\"alert\">Please select 'High' or 'Low'</div>";
            }
            else if(!$bet)
            {
                $invalid_bet = 1;

                echo "<br><br>" . "<div class=\"alert alert-danger\" role=\"alert\">Please place your bet.</div>";
            }
            else if(!$number)
            {
                $invalid_number = 1;

                echo "<br><br>" . "<div class=\"alert alert-danger\" role=\"alert\">Please choose a number.</div>";
            }
            else if($bet > $points)
            {
                echo "<br><br>" . "<div class=\"alert alert-danger\" role=\"alert\">You need " . $points . " points to select this number.</div>";
            }
            /*else if(isset($_SESSION['lastplay']) && ((time() - $_SESSION['lastplay']) < 60 * 30)) //time in seconds! 60 seconds = 1 Minute and 1 minute * 5 = 5 minutes!
            {
                echo "<br><br>" . "<div class=\"alert alert-danger\" role=\"alert\">You can only have a 'High' or 'Low' session every 30 minutes. Please retry later.</div>";
            }*/  
            else if(!$invalid_choice && !$invalid_bet && !$invalid_number)
            {
                $_SESSION['lastplay'] = time();

                if($choice == 1) //User selected high
                {
                    if($number > $random_number) //Won
                    {
                        $_SESSION['lastplay'] = time();

                        $calcreward = $bet * 2;

                        $won = 1;

                        $query = $con->prepare('UPDATE *** SET *** = ***+? WHERE *** = ?');
                        $query->bind_param("ii", $calcreward, $uid);
                        $query->execute();
                        $query->close();

                        $won_msg = "<br><br>" . "
                        <div class=\"alert alert-success\" role=\"alert\">YOU WON!
                        <br>
                        Your chosen number was ".$number.", meanwhile the lower number was ".$random_number.".
                        <br>Your bet of ".$bet."  has been doubled! Total win: ".$calcreward." </div>";
                    }
                    else if($number == $random_number) //Draw
                    {
                        $query = $con->prepare('UPDATE *** SET *** = ***-? WHERE *** = ?');
                        $query->bind_param("ii", $bet, $uid);
                        $query->execute();
                        $query->close();

                        $draw_msg = "<br><br>" . "
                        <div class=\"alert alert-info\" role=\"alert\">DRAW!
                        <br>
                        Your chosen number (".$number.") is the same as system number (".$random_number.").</div>";
                    }
                }
                else if($choice == 2) //User selected low
                {
                    if($number < $random_number) //Lost
                    {
                        $query = $con->prepare('UPDATE *** SET *** = ***-? WHERE *** = ?');
                        $query->bind_param("ii", $bet, $uid);
                        $query->execute();
                        $query->close();

                        $lost_msg = "<br><br>" . "
                        <div class=\"alert alert-danger\" role=\"alert\">You lost :(
                        <br>
                        Your chosen number was ".$number.", meanwhile the higher number was ".$random_number.".</div>";

                        $_SESSION['lastplay'] = time();
                    }
                    else if($number == $random_number) //Draw
                    {
                        $query = $con->prepare('UPDATE *** SET *** = ***-? WHERE *** = ?');
                        $query->bind_param("ii", $bet, $uid);
                        $query->execute();
                        $query->close();

                        $draw_msg = "<br><br>" . "
                        <div class=\"alert alert-info\" role=\"alert\">DRAW!
                        <br>
                        Your chosen number (".$number.") is the same as system number (".$random_number.").</div>";
                    }
                }

                if($won)
                {
                    $stmt = $con->prepare('INSERT INTO QUERY');

                    $username = $uname;
                    $wallet = $walt;
                    $hash = $rhash;
                    $usrnr = $number;
                    $fnlnumbr = $random_number;
                    $betamm = $bet;
                    $reward = $calcreward;
                    $stmt->bind_param("ssiiiis", $username, $wallet, $usrnr, $fnlnumbr, $betamm, $reward, $hash);

                    $stmt->execute();
                }
                else
                {
                    $stmt = $con->prepare('INSERT INTO QUERY');

                    $username = $uname;
                    $wallet = $walt;
                    $hash = $rhash;
                    $usrnr = $number;
                    $fnlnumbr = $random_number;
                    $betamm = $bet;
                    $stmt->bind_param("ssiiis", $username, $wallet, $usrnr, $fnlnumbr, $betamm, $hash);

                    $stmt->execute();
                }
            }

        }
    ?>

</form>

我已尝试各种方法,检查过变量等内容,但问题仍未解决。

内容的提问来源于stack exchange,提问作者JasonDeRue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 19:52:01