在提交时停止随机播放数组,但在刷新页面时继续对数组进行洗牌

时间:2016-02-17 07:21:03

标签: php arrays

每次刷新页面时我都需要对数组进行洗牌,但是当我提交时我需要最后的结果。在我的情况下,数组在提交时保持随机播放。

$a = array("test1","test2","test3");
shuffle($a);
$result = $a[0];

示例$result = "test2";

这是我的代码

if($_POST["submit"]) {
   //when do submit $result is shuffling again

   if($_POST["input_text"] == $result) {
       echo "true";
   }else {
       echo "false";
   }
}

<form method='POST'>
    <input type="text" name="input_text">
    <input type="submit" name="submit" value="submit">
</form>

实际上,我可以将结果传递给隐藏的输入类型,但我想阻止使用输入类型隐藏方法。

1 个答案:

答案 0 :(得分:1)

您可以在初始加载时单独保存结果。您可以从使用会话开始:

<?php
// start the session
session_start();

function shuffle_array() {
    $a = array("test1","test2","test3");
    shuffle($a);
    $result = $a[0];
    $_SESSION['result'] = $result;  
}

if(!empty($_POST["submit"])) { // submitted

   if($_POST["input_text"] == $_SESSION['result']) {
       echo "true";
       // if correct, shuffle again
       shuffle_array();
   } else {
        // try until you get it correct
       echo "false";
   }

} else {
    // not submitted or initial
    shuffle_array();
}

?>