POST 表单提交不返回任何内容

问题描述 投票:0回答:1

我正在用 PHP 创建一个更高或更低的游戏,到目前为止一切都已完成,但我在 POST 方面遇到了问题。

基本上,当用户编译所有 3 个字段(选择、赌注和数字)并按下“开始”时,不会显示任何内容。没有赢/输/平局消息或任何东西。

这是整个代码:

    <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>

我已经尝试了一切,检查了变量等等。

php forms form-submit
1个回答
0
投票

我已经编辑了 if(!$invalid_choice 等) 代码以减少它并使用更少的查询,但现在行甚至没有插入到数据库中,并且即使在表单后回显后仍然不显示消息。 :|

if(!$invalid_choice && !$invalid_bet && !$invalid_number)
            {
                if($choice == 1) //User selected high
                {
                    if($number > $random_number) //Won
                    {
                        $calcreward = $bet * 2;
                        $won = 1;
                    }
                    else if($number == $random_number) //Draw
                    {
                        $draw = 1;
                    }
                }
                else if($choice == 2) //User selected low
                {
                    if($number < $random_number) //Lost
                    {
                        $lost = 1;
                    }
                    else if($number == $random_number) //Draw
                    {
                        $draw = 1;
                    }
                }

                if($won)
                {
                    $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." LazyPoints has been doubled! Total win: ".$calcreward." LazyPoints</div>";

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

                    $stmt = $con->prepare('INSERT QUERY) VALUES (?, ?, ?, ?, ?, ?, ?)');

                    $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();

                    $_SESSION['lastplay'] = time();
                }
                
                if($lost)
                {
                    $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>";

                    $query = $con->prepare('UPDATE QUERY-? WHERE id = ?');
                    $query->bind_param("ii", $bet, $uid);
                    $query->execute();
                    $query->close();

                    $stmt = $con->prepare('INSERT INTO QUERY VALUES (?, ?, ?, ?, ?, ?)');

                    $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();

                    $_SESSION['lastplay'] = time();
                }
                
                if($draw)
                {
                    $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>";

                    $query = $con->prepare('UPDATE QUERY-? WHERE id = ?');
                    $query->bind_param("ii", $bet, $uid);
                    $query->execute();
                    $query->close();

                    $stmt = $con->prepare('INSERT INTO QUERY VALUES (?, ?, ?, ?, ?, ?)');

                    $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();
                }
            }```
© www.soinside.com 2019 - 2024. All rights reserved.