>  기사  >  백엔드 개발  >  PHP가 이전 양식을 덮어쓰지 않고 양식을 제출합니까?

PHP가 이전 양식을 덮어쓰지 않고 양식을 제출합니까?

WBOY
WBOY원래의
2016-09-05 08:59:581188검색

<code>$s1 = rand(1,9);
$s2 = rand(1,9);

if($_POST['daan']){
    if($_POST['daan'] == $s1+$s2){
        $txt = '正确';
    }else{
        $s = $s1 + $s2;
        $txt = '错,正确答案是' .$s;
    }
}
</code>

?>

<code><?=$s1?> + <?=$s2?> = <input type="input" name="daan" />
<?=isset($txt) ? $txt : '请回答'?>
<input type="submit" name="button" id="button" value="提交" /></code>

코드는 위와 같습니다. 현재 상황은 양식을 제출한 후 rand 값이 제출 후의 값이기 때문에 마지막 rand 값을 덮어쓰지 않으려면 어떻게 해야 합니까?

답글 내용:

<code>$s1 = rand(1,9);
$s2 = rand(1,9);

if($_POST['daan']){
    if($_POST['daan'] == $s1+$s2){
        $txt = '正确';
    }else{
        $s = $s1 + $s2;
        $txt = '错,正确答案是' .$s;
    }
}
</code>

?>

<code><?=$s1?> + <?=$s2?> = <input type="input" name="daan" />
<?=isset($txt) ? $txt : '请回答'?>
<input type="submit" name="button" id="button" value="提交" /></code>

코드는 위와 같습니다. 현재 상황은 양식을 제출한 후 rand 값이 제출 후의 값이기 때문에 마지막 rand 값을 덮어쓰지 않으려면 어떻게 해야 합니까?

<code>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;
}</code>

양식을 제출하면 페이지가 다시 새로 고쳐지고 $s1$s2이 임의의 값을 다시 가져옵니다.
문제를 해결하는 방법은 새로 고칠 때 값을 변경하지 않는 것입니다. .session그냥 들어가세요.

<code class="php">session_start();
$s1 = $_SESSION['s1'] = rand(1, 9);
$s2 = $_SESSION['s2'] = rand(1, 9);

//然后下面的判断用$_SESSION的值就行了</code>

새로 고침 시 $_SESSION[]은 변수와 마찬가지로 새 값을 가져옵니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.