2017-02-26 44 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

相关问题