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ランキング
-
ブラウザバックしてもチェック...
-
PHPの認証方法
-
VBAで重複チェックの仕方を教え...
-
「取得先」という表現について
-
DTOとEntityの差は何ですか。
-
Dosブロンプトでtabを出力したい
-
URLのパラメータをGETのままで...
-
バッチファイルでpingの結果を...
-
ps3で久しぶりにCDの音楽情報取...
-
ゼロとNULLを区別して number_f...
-
ファイル名に日付の挿入
-
バッチファイルで、全てのウィ...
-
現在時刻をyyyymmddhhmmss形式...
-
表を表示するコントロールについて
-
C言語を使って、ある特定の日の...
-
wordの差し込み印刷で文字...
-
phpでcookieがうまく保存されない
-
switch()文で値の大小比較
-
excel access連携 このテーブル...
-
エクセルVBAにて同行内複数URL...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php 入力画面から確認表示画面...
-
ログイン画面から入って、「戻...
-
POSTで受け渡したものを保存し...
-
php history.back()の戻るボタ...
-
フォームを使わずにPOST送信す...
-
VBAで重複チェックの仕方を教え...
-
PHPで値を保持する方法
-
ブラウザバックしてもチェック...
-
IFRAME内PHPのセッション変数取...
-
【Java】投稿完了画面リロード...
-
cURL関数を使用したphpからのpo...
-
HTMLエスケープ処理とデーター...
-
php に関して質問です。 各ユー...
-
asp.netでのセッションを使用し...
-
「ページネーション」で検索キ...
-
PHPで名寄せするには?
-
セッションを使用したページ遷移
-
閉じるボタン「×」を制御したい
-
ブラウザの戻るボタンで重複登...
-
GETのメリットについて
おすすめ情報