错误/右计数器用于用户输入评估PHP

时间:2014-02-08 17:31:48

标签: php validation session input counter

我已经构建了一个使用随机数和操作(+, - ,*,/)的简单计算器。用户可以为每个问题填写表格,并评估他们的输入。然而,我不想仅针对单个问题显示“那是对的”或“那是错的”,而是希望在更多问题(例如50)上显示他们输入的准确性/失败。因此,我正在寻找一个数字计数器,一个可能只包含一个简单的数字,每当用户给出正确的答案(可能是绿色)时计数,而第二个(红色)计数在用户给出错误时计数回答。这两个数字应该不断显示。 50次后,它会显示正确答案的百分比。

我可以用会话吗?如果是这样,怎么样?现在,每次点击提交按钮时页面都会刷新。由于我还不是专家(你),因此你可以获得更好的特性。谢谢你的帮助!!请在下面找到我的代码:

<div style="text-align: center; font-weight: bold; font-size: x-large">


    <?php
    $number1 = rand(1,100);
    $number2 = rand(1,100);
    $number3 = rand(1,20);
    $number4 = rand(1,20);

    switch(rand(0,3)) {
        case 0:
            $solution = $number1 + $number2;
            echo "$number1+$number2=?";
            break;
        case 1:
            $solution = $number1 - $number2;
            echo "$number1-$number2=?";
            break;
        case 2:
            $solution = $number3 * $number4;
            echo "$number3*$number4=?";
            break;
        case 3:
            $solution = $number3 / $number4;
            echo "$number3/$number4=?";
            break;
    }
    ?>


<form action="form10.php" method="post">
Your Answer:<br>
<input type="integer" name="answer">
<input type="hidden" name="solution" value="<?php echo $solution; ?>">
<input type="Submit" value="Submit!">
</form>

<?php
if(isset($_POST['answer']) && isset($_POST['solution'])) {
    if ($_POST["answer"] == round($_POST['solution'],1)) {
        echo "<font color='#008000'> That's right! </font>";;
    } else {
      echo "That's wrong!";
    }
}
?>


</div> 

1 个答案:

答案 0 :(得分:0)

看起来你只需要一个$ counter值来坚持......

<input type="hidden" name="counter" value="<?php echo $counter; ?>">

然后增加......

if( isset($_POST['counter']) )
   $counter= $_POST['counter'] + 1;

示例'test.php'=继续点击提交按钮...

<?php

$counter=0;
if( isset($_POST['counter']) )
   $counter= $_POST['counter'] + 1;

?>

<form action="test.php" method="post">
Your Answer:<br>
<input type="integer" name="answer">
<input type="hidden" name="counter" value="<?php echo $counter; ?>">
<input type="Submit" value="Submit!">
<br>
Counter = <?php echo $counter; ?>
</form>