セッションを使用してフォーム入力を保存しようとしていますが、最後に送信されたフォームでのみ機能します。セッションでフォーム情報を保存する
私はこのように書きますのindex.phpを持っている:
<?php
session_start();
$_SESSION['number-of-sessions'] = 0; ?>
...
その後、form.phpするためのリンクがあります:
...
<form action='display.php' method='post'>
<input type='text' name='name'/>
<input type='text' name='id'/>
<input type='submit' value="Submit"/>
...
そして、ここではdisplay.phpです:
<?php
session_start();
$_SESSION['number-of-sessions']++;
$_SESSION[$_SESSION['number-of-sessions']] = $_POST;
?>
...
<?php
for($i = 1; $i <= $_SESSION['number-of-sessions']; $i++) {
print_r($_SESSION[$i]));
}
?>
// another link that goes back to form.php
基本的に、それは常に最後に提出されたフォームを印刷し、その他は空白スペースです。
これを行う方法は他にありますか、それとも正しく行う方法はありますか?
p.s:データベースを使用することはできません。
あなたがテストしているブラウザでCookieが有効になっていますか? PHPSESSIDがCookieに存在し、ページリクエスト間で変更されていないことを確認します(存在する場合は、セッションで何かが壊れている)。 – IncredibleHat
はい、クッキーは有効で、私のセッションIDは同じです。 –
そして、あなたは決して 'index.php'に戻りませんか?複数のフォームを送信する同じセッションで、 'form.php'と' display.php'の間でのみバウンスしますか?セッションのタイムアウト時間内にすべてタイムアウトしないようにするには? – IncredibleHat