我正在用 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>
我已经尝试了一切,检查了变量等等。
我已经编辑了 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();
}
}```