PHP初学者-运行总数


PHP Beginner - a running total

所以我决定尝试学习PHP,在完成一些在线课程等后,我在一定程度上掌握了基础知识。

我一直在尝试通过制作一个简单的游戏来测试我自己。

在游戏中,你投注一定数量的信用,并生成1到100之间的随机数,如果数字高于60,你得到双倍的赌注,如果低于60,你失去了你的赌注。

我一直在创建一个运行总数,非常感谢任何建议。

下面的代码(为写得不好的代码道歉:p)

   <?php
$rand = rand(1,100);
$usrBet = $_POST['usrBet'];
$usrCredit = 1000;
if ($rand > 60) {
$usrCredit = ($usrCredit - $usrBet) + ($usrBet * 2);
echo "Your Bet : " ,$usrBet;
echo "<br>";
echo "The Banker Rolled : " ,$rand;
echo "<br>";
echo "You Win";
echo "<br>";
echo "Current Credits : " ,$usrCredit;
} else {
$usrCredit = $usrCredit - $usrBet;
echo "Your Bet : " ,$usrBet;
echo "<br>";
echo "Aww Snap! you loose!";
echo "<br>";
echo "The Banker Rolled : " ,$rand;
echo "<br>";
echo "Current Credits : " ,$usrCredit;
}
?>
    <form action="dicegame.php" method="post">
    <INPUT TYPE = "Text" VALUE ="Please Enter Your Bet" NAME = "usrBet" placeholder="Please Enter Your Bet">
    <p><input type="submit" /></p>
    </form>

你必须使用session来存储数据,这样分数才不会重置

要使用会话,你必须像这样启动会话

session_start();

之后你需要检查这个值是否在会话中被赋值如果没有,这意味着用户是第一次尝试所以我们会在会话开始时给1000分,像这样

if(!isset($_SESSION['userCredits'])){
  $_SESSION['userCredits'] = 1000;
}

当用户积分更新时,我们必须在会话中更新它,像这样

$_SESSION['userCredits'] = $usrCredit;

如果user首先出现在页面上,我们不想先给出结果,所以检查表单是否在条件开始时发布,就像这样。

if(isset($_POST['usrBet'])){
 // PHP CODE
}

在所有这些之后,最终的代码看起来像这样

<?php
session_start();
if(!isset($_SESSION['userCredits'])){
      $_SESSION['userCredits'] = 1000;
}

if(isset($_POST['usrBet'])){
    $rand = rand(1,100);
    $usrBet = $_POST['usrBet'];
    $usrCredit = $_SESSION['userCredits'];
    if ($rand > 60) {
        $usrCredit = ($usrCredit - $usrBet) + ($usrBet * 2);
        echo "Your Bet : " ,$usrBet;
        echo "<br>";
        echo "The Banker Rolled : " ,$rand;
        echo "<br>";
        echo "You Win";
        echo "<br>";
        echo "Current Credits : " ,$usrCredit;
    } else {
        $usrCredit = $usrCredit - $usrBet;
        echo "Your Bet : " ,$usrBet;
        echo "<br>";
        echo "Aww Snap! you loose!";
        echo "<br>";
        echo "The Banker Rolled : " ,$rand;
        echo "<br>";
       echo "Current Credits : " ,$usrCredit;
    }
    $_SESSION['userCredits'] = $usrCredit;
}
?>
<form action="dicegame.php" method="post">
    <INPUT TYPE = "Text"  NAME = "usrBet" placeholder="Please Enter Your Bet">
    <p><input type="submit" /></p>
</form>

可以添加更多的条件。希望对大家有所帮助

我尝试添加一些功能,以便您可以以这种方式搜索。如前所述,$_SESSION将解决pbm。

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<script>
    <!-- Some few lines of JS - to disable characters input -->
    function isNumberKey(evt)
    {
        var charCode = (evt.which) ? evt.which : event.keyCode
        if (charCode > 31 && (charCode < 48 || charCode > 57))
            return false;
        return true;
    }    
</script>
   </head>
    <body>
   <!-- U'll to re-edit the target of the form + changed type to number for input -->
    <form action="7.php" method="post">
        <input type="number" name="usrBet"  value="Plz Enter Your Bet"
               placeholder="Plz Enter Your Bet" onkeypress="return isNumberKey(event)">
        <br>
        <input type="submit" value="Submit">
    </form>
</body>
</html>
<?php
// Check if user entered a value
if (isset($_POST['usrBet']))
{
    if($_POST['usrBet'] == '')
    $usrBet = 0;
else
    $usrBet = $_POST['usrBet'];
$rand = rand(1,100);
if(!isset($_SESSION['usrCredit']))
        $_SESSION['usrCredit'] = 1000;
if($rand > 60)
{
    $_SESSION['usrCredit'] = ($_SESSION['usrCredit'] - $usrBet) + ($usrBet * 2);
    echo "Your Bet : " . $usrBet;
    echo "<br>";
    echo "The Banker Rolled : " . $rand;
    echo "<br>";
    echo "You Won";
    echo "<br>";
    echo "Current Credits : "  . $_SESSION['usrCredit'];
} 
else
{
    $_SESSION['usrCredit'] = $_SESSION['usrCredit'] - $usrBet;
    echo "Your Bet : " . $usrBet;
    echo "<br>";
    echo "Aww Snap! you lost!";
    echo "<br>";
    echo "The Banker Rolled : " . $rand;
    echo "<br>";
    echo "Current Credits : " . $_SESSION['usrCredit'];
}
}
?>