时间:2021-07-01 10:21:17 帮助过:4人阅读
$s1 = rand(1,9);
$s2 = rand(1,9);
if($_POST['daan']){
if($_POST['daan'] == $s1+$s2){
$txt = '正确';
}else{
$s = $s1 + $s2;
$txt = '错,正确答案是' .$s;
}
}
?>
代码如上,现在的情况是提交表单后,rand值为提交后的值,造成答案错误,请问如果做才能不覆盖上次的rand值呢?
$s1 = rand(1,9);
$s2 = rand(1,9);
if($_POST['daan']){
if($_POST['daan'] == $s1+$s2){
$txt = '正确';
}else{
$s = $s1 + $s2;
$txt = '错,正确答案是' .$s;
}
}
?>
代码如上,现在的情况是提交表单后,rand值为提交后的值,造成答案错误,请问如果做才能不覆盖上次的rand值呢?
session_start();
if($_POST['daan']){
if($_POST['daan'] == $_SESSION['result']){
$txt = '正确';
}else{
$txt = '错,正确答案是' .$_SESSION['result'];
}
}else{
$s1 = rand(1,9);
$s2 = rand(1,9);
$_SESSION['result'] = $s1 + $s2;
}
你提交表单后, 该页面会重新刷新, $s1
和$s2
会重新获取一个随机值.
那解决问题的方法, 就是让它刷新的时候不改变值. 你放在session
里面就行了.
session_start();
$s1 = $_SESSION['s1'] = rand(1, 9);
$s2 = $_SESSION['s2'] = rand(1, 9);
//然后下面的判断用$_SESSION的值就行了
刷新的时候,$_SESSION[]跟变量一样,会重新获取一个新值。