PHPでsession_start();とした後のフォームで、その後にフォームで入力したデータをPOSTで送って確認画面を表示したとします。
ここで、最初のsession_start();がなければ、ブラウザの戻るボタンで前のフォーム入力画面へと戻っても、入力したデータは保存されたままですが、session_start();とした後では、入力したデータが全てクリアされてしまうようです。
ちょっと修正したい時に、すべてクリアされてしまうとかなり不便なのですが、何かよい方法はないものでしょうか?セッション変数にPOSTするデータを保存する以外で方法はないものでしょうか?
No.2ベストアンサー
- 回答日時:
session_startでフォームデータが消えるのは、PHPのセッションで
キャッシュ設定がno-cacheになっているせいだと思います。
php.ini, .htaccess, ini_set()で下記を設定するか、
session.cache_limiter
session.cache_expire
または、プログラム中でsession_start()より前に
session_cache_expire( 指定時間(分) ) ;
session_cache_limiter('private_no_expire') ;
関数を呼ぶことで、解決すると思います。
上記を設定するとhttpヘッダにキャッシュコントロールを追加して
クライアントに投げます。
よって、ブラウザの戻るボタンで戻った場合、
サーバにアクセスが発生しないので、
入力画面において入力フォーム以外の部分の情報も更新されませんので、
注意してください。
やっぱりセッションから引っ張る方がベストですが、
メールフォームやBBSなど重要なデータを扱わなかったり、
単純なものにはキャッシュコントロールの方が便利といえば、便利です。
もちろん、フォームにデータが残るので、
二重送信対策とかもしておいた方がいいですね。
参考URL:http://www.php.net/manual/ja/ref.session.php
ありがとうございました。
session_cache_limiter('private_no_expire');
の文の追加で解決しました。
また何かありましたら、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- PHP 「ログイン機能を持たせる」説明が気難しいです。 2 2022/10/11 02:59
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
POSTで受け渡したものを保存し...
-
Dosブロンプトでtabを出力したい
-
shシェルスクリプト 空白行の...
-
wordの差し込み印刷で文字...
-
【C#】DataGridViewの最大列数...
-
「取得先」という表現について
-
excel access連携 このテーブル...
-
バッチファイルでpingの結果を...
-
DTOとEntityの差は何ですか。
-
switch()文で値の大小比較
-
ps3で久しぶりにCDの音楽情報取...
-
Yahoo! JAPAN IDを新規取得でき...
-
phpでcookieがうまく保存されない
-
URLのパラメータをGETのままで...
-
アップロードしたファイル名に...
-
「次の10件を表示する」のよ...
-
EXCEL、マクロ-改ページ行番号...
-
vb作成したらでbeep音が鳴りま...
-
CakePHP リッチテキストエディ...
-
VB.NETからVBAマクロ(引数)を呼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
POSTで受け渡したものを保存し...
-
ログイン画面から入って、「戻...
-
ブラウザバックしてもチェック...
-
php 入力画面から確認表示画面...
-
HTMLフォームのデータ引き継ぎ...
-
VBAで重複チェックの仕方を教え...
-
php history.back()の戻るボタ...
-
セッション使用時のフォームの...
-
HTMLエスケープすべき場所につ...
-
PHPで返信メールにチェックボッ...
-
閉じるボタン「×」を制御したい
-
HTMLエスケープ処理とデーター...
-
携帯サイトにお気に入りに登録...
-
ウェブアプリの設計に問題がな...
-
セッションを使用したページ遷移
-
入力系のプログラミング手法に...
-
GETとPOST
-
asp.netでのセッションを使用し...
-
フォームを使わずにPOST送信す...
-
PHPでのログイン機能でのメール...
おすすめ情報