2017-02-26 117 views
0

我正處於爲賭場經銷商創建培訓工具的初期階段。我的代碼工作在大約75%。PHP表格 - 將設定值與用戶輸入值進行比較

該工具非常簡單:代碼生成5到100之間的隨機下注量,生成2到12之間的隨機擲骰數,根據下注和$factor值計算$winning_bet金額,用戶在文本中輸入回答字段,代碼可讓您知道if-else聲明是否正確或錯誤。

下面是我遇到的問題:

  1. 當我第一次加載該文件在我的瀏覽器,我附和正確答案(即使當獲得$dealer_answer
  2. 的「未申報值」錯誤確保我知道我的數學是正確的)並在文本字段中輸入正確的答案,但我仍然得到「這是不正確的」。響應。 (注意:我假設這是因爲它使用的是LAST保存的值,而不是用戶當前在文本字段中輸入的值。)
  3. 提交表單時,它不正確地在文本字段中保存/使用輸入的值我有時候會得到錯誤的答案。 (可能與#2相同)
  4. modulo運營商有時會產生一個「0」的投注。顯然你不能賭賭場遊戲,並仍然贏。下注金額需以5爲增量5至100(5,10,55,80等)。

這是我的代碼。我仍然處於PHP的學習階段,所以任何和所有的信息都是值得讚賞的。我甚至不完全確定我正在做這件事。 (諷刺的是,如果這是C#,我就不會在這裏...)

<?php 
// Defaults 
$dealer_answer = $_POST['dealer_answer']; 

// Generate random bet 
$random_bet = rand(5,100); 
$random_bet = $random_bet % 5; 
$random_bet = $random_bet *5; 

// Generate roll 
$roll = 10; 
$factor = 1.8; 

// Place bet 
$winning_bet = $factor*$random_bet; 
$winning_bet = floor($winning_bet); 
echo $winning_bet; // Display current value for testing purposes 
echo '<p>' . $dealer_answer . '</p>'; // Display current value for testing purposes 
?> 

<p>Player has a bet of <?php echo $random_bet; ?> on a Place Bet 10.</p> 
<p>Player rolls a <?php echo $roll; ?>. How much does the player win? 
<form method="POST" action=""> 
    <input type="text" name="dealer_answer" value="<?php $dealer_answer; ?>"> 
    <input type="hidden" name="winning_bet" value="<?php $winning_bet; ?>"> 
    <input type="submit" value="Submit" name="submit"> 
</form> 

<?php 
session_start(); 
// Check if answer is right 
if (isset($_POST['submit'])) 
    if ($dealer_answer == $winning_bet) { 
     echo "That's right!"; 
    } else { 
     echo "That is incorrect."; 
} 
+0

檢查錯誤報告的錯誤,你會看到這裏發生了什麼。 –

+0

您能否粘貼您在這裏獲得的未聲明的錯誤? –

+0

@NickDuncan注意:未定義的索引:位於C:\ xampp \ htdocs \ casino-dealer.php中的dealer_answer在第3行 – cmdshorty

回答

1

試着改變你的代碼:

<?php 
    // Defaults 
    //Generate random bet 
    $random_bet = rand(5,100); 
    $random_bet = $random_bet % 5; 
    $random_bet = $random_bet *5; 

    // Generate roll 
    $roll = 10; 
    $factor = 1.8;   

    // Place bet 
    $winning_bet = $factor*$random_bet; 
    $winning_bet = floor($winning_bet); 

    echo "Winning bet is = ".$winning_bet; // Display current value for testing purposes 

    if (isset($_POST) && isset($_POST['dealer_answer'])) { 
     var_dump($_POST); 
     $dealer_answer = $_POST['dealer_answer']; 
     $winning_bet = $_POST['winning_bet']; 

     var_dump("Dealer answer = ".$dealer_answer); 
     var_dump("Winning bet = ".$winning_bet); 

     if ($dealer_answer == $winning_bet) { 
       echo "That's right!"; 
     } else { 
      echo "That is incorrect."; 
     }   



     echo '<p>' . $dealer_answer . '</p>'; // Display current value for testing purposes 
    } 
?> 

<p>Player has a bet of <?php echo $random_bet; ?> on a Place Bet 10.</p> 
<p>Player rolls a <?php echo $roll; ?>. How much does the player win? 
<form method="POST" action=""> 
    <input type="text" name="dealer_answer" value="<?php if (isset($_POST['dealer_answer'])) { echo $dealer_answer; } ?>"> 
    <input type="hidden" name="winning_bet" value="<?php echo $winning_bet; ?>"> 
    <input type="submit" value="Submit" name="submit"> 
</form> 

我已經離開了var_dump在裏面,所以你可以看到一路上的變數。

+0

工作。現在我看到了正確的做法,我完全理解它。只需要提醒自己:語法,語法,語法。 – cmdshorty

相關問題