私は現在、$_SESSION
を使用して複数ページのフォームを作成していますが、これまでのところすべて正常に動作しています。しかし、6ページの最後にすべてのデータを取得することはできますが、ユーザーが間違っていた場合はフォームに戻ることはできないようです。複数のページのフォームに戻る
彼は5ページ目にいて、何かを変えるために3ページ目に戻る必要があることを理解していますが、そうすることはできません。 Firefoxは次のエラーメッセージを表示します。
文書が期限切れです この文書はもう使用できません。 要求されたドキュメントはFirefoxのキャッシュでは使用できません。セキュリティ上の予防策として、Firefoxは機密文書を自動的に再要求しません。再度試してください。
これは私のフォームは次のようになり、この1つはフォーム1.phpは何かということです:
<form action="Form-2.php" method="post">
<fieldset>
<legend>Information</legend>
<p>
<label for="name">Name</label>
<input id="name" type="text" name="name" required/>
</p>
<p>
<label for="age">Age</label>
<input id="age" type="number" name="age" placeholder="Ex. 1988" required/>
</p>
<p>
<input id="sex-m" type="radio" name="sex" value="Male" required/>
<label for="sex-m">Male</label>
<input id="sex-f" type="radio" name="sex" value="Female" required/>
<label for="sex-f">Female</label>
</p>
</fieldset>
<input type="submit" value="Next page"/>
</form>
私は前のフォームからデータを取得するためにSESSION
を使用しています、この1つはフォーム2.phpからです:
session_start();
$_SESSION['name'] = $_POST['name'];
$_SESSION['age'] = $_POST['age'];
$_SESSION['sex'] = $_POST['sex'];
6ページも同様です。
正常に動作し、すべての値を正しく取得しますが、フォームに入力するときに戻ることはできません。
私は間違っていますか?ユーザーが間違いを犯した場合に、ユーザーが元に戻ることができるようにするにはどうすればよいですか?
ありがとうございました。
EDIT:
私は私の問題の半分を解決し、次のコードになってしまいました。まだフォーム2.phpから:
session_start();
if (isset($_SESSION['location']) && isset($_SESSION['job'])) {
$location = $_SESSION['location'];
$job = $_SESSION['job'];
} else {
$_SESSION['name'] = $_POST['name'];
$_SESSION['age'] = $_POST['age'];
$_SESSION['sex'] = $_POST['sex'];
$location = '';
$job = '';
}
その後、私は単純にフィールドの値を表示:テキスト場合
:それは非常にうまく機能<?php if(isset($job) && $job == "Yes"){echo "checked=\"checked\" ";} ?>
:<?php echo $location; ?>
ラジオ場合値が設定されていれば、さまざまなフォームが事前に設定されています。
私の問題は、あなたが見ることができるように、である、私は戻って、変更値ならば、私はPOST
を無視していますようSESSION
に格納されている対応する値がある場合、それは考慮されません。
私はこの作業を正しく行う方法を理解できません...何かヒント?
Fyiという英語の単語「情報」は存在しません。それは常に「情報」です。 – ThiefMaster
本当に、私のフォームをすばやく翻訳しましたが、私はこれを逃しました! – morgi