我想运行迷你程序以确认安全问题:
$questions = array('dog legs','car legs','the best country in the world');
$answers = array(4,4,'USA');
$questionId = rand(0, (count($questions)-1));
Run Code Online (Sandbox Code Playgroud)
然后
$ans = $_POST['answer'];
if($ans == $answers[$questionId]){echo 'Confirmed !';}
Run Code Online (Sandbox Code Playgroud)
所以问题是,不是我每次回答答案都是正确的,因为在发送表单后,rand函数运行并更改问题!有解决方案吗
您可以在表单中传入一个隐藏的输入,其值为问题ID,这样就会重新发送ID.
<input type="hidden" name="questionId" value="<?php echo $questionId; ?>"></input>
Run Code Online (Sandbox Code Playgroud)
然后检查表单是否已提交.
<?php
if ($_POST['questionID'])
$questionID = $_POST['questionID'];
else
$questionID = rand(0, (count($questions)-1));
Run Code Online (Sandbox Code Playgroud)
您还可以使用base64编码来保护所有这些