Heim > Artikel > Backend-Entwicklung > PHP sendet ein Formularrand, ohne das vorherige zu überschreiben?
<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>
?>
Die aktuelle Situation ist, dass nach dem Absenden des Formulars der Rand-Wert der Wert nach dem Absenden ist, was dazu führt, dass die Antwort falsch ist. Was kann ich tun, um ein Überschreiben des letzten Rand-Werts zu vermeiden?
Antwortinhalt:
<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>
Die aktuelle Situation ist, dass nach dem Absenden des Formulars der Rand-Wert der Wert nach dem Absenden ist, was dazu führt, dass die Antwort falsch ist. Was kann ich tun, um ein Überschreiben des letzten Rand-Werts zu vermeiden?
<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>Nachdem Sie das Formular abgeschickt haben, wird die Seite erneut aktualisiert und
und
erhalten erneut einen zufälligen Wert. $s1
Die Lösung des Problems besteht darin, den Wert beim Aktualisieren nicht zu ändern . Du sagst $s2
Geh einfach hinein.
session
<code class="php">session_start(); $s1 = $_SESSION['s1'] = rand(1, 9); $s2 = $_SESSION['s2'] = rand(1, 9); //然后下面的判断用$_SESSION的值就行了</code>Beim Aktualisieren erhält $_SESSION[] genau wie eine Variable einen neuen Wert.