• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ページ移動した場合の、フォームデータの保持)

フォームデータ保持方法について質問

tkc2007の回答

  • tkc2007
  • ベストアンサー率50% (2/4)
回答No.5

サーバの環境が分からないのと、どういうコードを書かれているか分からないので完全な答えでは無いですが… PHPだから残らないですか?HTMLだと残ります? (HTMLのソース部分が全く同じ条件で) 「戻る」の操作で毎回新規でページを読み込んでいるのだとすれば、 一番疑わしいのは、キャッシュコントロールだと思います。 (正確な動作を確認するのであれば、フォームのページにアクセス解析を設置するかWEBサーバのログを確認して下さい) HTTPレスポンスヘッダか、HTMLのmetaタグでブラウザがページをキャッシュしない状態になっているのではないでしょうか? ■<meta>タグでキャッシュ無効にしていないか <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="***"> のようなコードがあるかどうか ■PHPのコード側でキャッシュを無効にしているか Header("Cache-Control: no-cache"); のような記述がないか (セッション使っているのなら、また別の可能性もありますが) WEBサーバ側でキャッシュを無効にしているか .htaccess, httpd.conf等でHTTPヘッダを追加しているかどうか など、色々と方法はあるので、どれかでキャッシュ無効にしているのが効いているのかもしれません。

jamey
質問者

お礼

回答ありがとうございます。 実はご指摘の >■<meta>タグでキャッシュ無効にしていないか ><meta http-equiv="Pragma" content="no-cache"> ><meta http-equiv="Cache-Control" content="no-cache"> ><meta http-equiv="Expires" content="***"> >のようなコードがあるかどうか ですが、これらのコードあります。が、消してみましたが、結果は変わりませんでした。まだ「シロ」と判断したわけではありませんが。 他のコードも紛れ込んでいるかもしれません。あまりわからず見よう見真似で作った部分もあるので(^^;)。他に挙げていただいたものをを検証してみますね。 PHPとHTMLは、結局ダウンロードしてくるデータは同じなので、HTMLではまだ試していませんが、同じことですよね、たぶん。 とにかくキャッシュの無効化が影響しているかについて、調べてみます。ありがとうございました。

jamey
質問者

補足

★下記の「お礼」より、こちらの「補足」を後で書いてます! お礼を書いた後、いろいろ試してみたところ、結果は、以下の通りでした。 ○PHPでは残らないフォームデータがHTMLでは残りました。 ○header(),httpd.conf,.htaccessでは、キャッシュをコントロールする記述はありませんでした。 ○metaタグでのno-cacheの設定を削除してもフォームデータは残りませんが(PHPの場合)、HTMLならmetaタグにno-cacheの設定があってもフォームデータは残りました。 ということで、問題はPHPだと思い、 >(セッション使っているのなら、また別の可能性もありますが) が気になったので、PHPの先頭のsession_start()を削除したら、フォームデータが残るようになりました。 session_start()については、恥ずかしながらよく理解しておりません。これがPHPの先頭にあると、呼ばれるたびに新しいセッションになる?(呼ばれなければ前のセッションを引き継ぐ???)、という程度の意識しかなくて、他のプログラムの再利用で分からないまま使っていたのですが・・・。 これは、セッション変数を使っていなければ、消してしまっていいのでしょうか?ちなみにクッキーは使っています。 不勉強で申し訳ありませんが、よろしくお願いいたします。

関連するQ&A

  • フォームデータを保持するには、ブラウザによる違いについてい

    フォームにデータを入力し、一度別のページへ移動し、 また戻ってきたときにデータが保持されたままにするにはどのようにすればよいのでしょうか。 ブラウザによって動作が異なるようで 以下のコードではIE6では保持されますがFirefox3.0.3では保持されません。 test1.html ---------------- <form action="test2.php" method="POST"> <input type="text" name="text" /> <input type="submit" /> </form> ----------------

    • 締切済み
    • PHP
  • ページ移動での値の保持

    PHPカテゴリなら 詳しい方がおられるかな?と思い、質問です。 ブラウザ(フォームとか)から入力した値を 画面を何度切り替えても保持していく方法について、 ふと疑問に思ったことです。 <input type="hidden" name="a" value="<?= $_POST['a'] ?>"> のように仕組んでおくと、前のページからの a の値を次のページに渡せますよね。 この方法と、セッションを使う方法の、どちらがよいやり方でしょう? 1)サーバーとブラウザで キャッチボール式に値を投げっこして保持していくのと、 2)セッションに登録してしまって、サーバーで保持するのと、 どちらがどういいのか気になりました。 もちろん、パスワードの類は前者(1)をやるとよろしくないと思いますが、サーバーの負荷具合とか、速さとか、プログラミング上のこととか、良いところ悪いところを、どうか教えてください。 専門家の意見、個人的な意見、好み、理屈の通った意見、いろいろ待ってます。

    • 締切済み
    • PHP
  • フォームの内容を更新しても保持したい

    セレクトボックスやテキストなどのフォームで 途中までせっかく入力しても ブラウザの更新ボタンを押すと情報が消えてしまいます。 しかし、更新しても情報が消えないようにすることは可能でしょうか? どうしても子窓終了時にその情報を親窓に反映させるため、親窓を途中でリロードしなければいけません。その時にそれまで親窓で入力した情報が消えてしまってはかなり凹んで使う気になれないと思いますので、可能であればアドバイスを頂けないでしょうか? 自分自身にリンクが張ってある場合で送信ボタンを押した時など更新以外でページが切り替わるときは保持していなくても良いです。 よろしくお願いします。

  • C#のフォーム間のデータの受け渡しについて

    はじめまして。よろしくお願いします。 最近C#をはじめましたがいきなりつまづいてしまいました。 クラスを利用しフォーム間でデータの受け渡しをしたいのですがどうすればいいのでしょうか? 処理は以下のようになっております まず、フォームが2つあります。フォーム1とフォーム2とします。 最初に起動されるのがフォーム1で、フォーム1にはボタンが2つあります。ボタンA、ボタンBとします ボタンA、ボタンBどちらのボタンを押下しても、フォーム2が開きますがどちらを押されてたかをフォーム2のテキストボックス(テキスト2とします)に表示します。 クラスですがフォームが2つとデータ保持のためのクラスが1つ(データ保持クラスとします)があります。 データ保持クラスにはint形のBtnClickプロパティ(get,set)を作成しております。, フォーム1のボタンA押下時処理  データ保持クラスのBtnClickに1を格納し、フォーム2を開きます。 フォーム1のボタンB押下時処理  データ保持クラスのBtnClickに2を格納し、フォーム2を開きます。 フォーム2起動時処理  データ保持クラスのBtnClickから値を取得しフォーム2のテキスト2へ表示します。 で、肝心の質問ですが、データ保持クラスの宣言はどこにすればいいのでしょうか? また、インスタンスはどのタイミングで作成すればいいのでしょうか? フォーム1にpublicとして宣言しインスタンスを作成し、ボタン押下時にBtnClickプロパティーにデータを格納し・・・ というところまではできたのですが、フォーム2で値が取得できないどころか、コンパイルが通りません。 あと、こういうデータ保持クラス使い方って一般的ですか?? 長々と脈略もなく書きましたがご教授ください。どうぞよろしくお願いします。

  • 指定したデータを別ページフォームへ引き継ぎたい!

    問合せフォームとJAVASCRIPTに関する質問です。 ECサイトで、商品の説明ページが複数あります。 商品問合せを受け付けるようになっているのですが、各説明ページから「問合せ」ボタンをクリックした際に、問合せフォームの指定したテキストエリアに指定した文字列が入力されている状態にしたいのです。 例えば、商品番号がABC001の場合… ・商品説明ページに「ABC001」というデータを記載(HIDDENなど?) ・商品説明ページの問合せボタンを押すと、フォームの「商品番号」テキストエリアに既に「ABC001」という値が入っている ・商品説明ページの「ABC001」を「DEF002」に変更すると、フォームに入る値も「DEF002」になる これらの動作をCGI・PHPを使わずJAVASCRIPTで実現したいのですが、可能でしょうか。 ご回答、よろしくお願いいたします。

  • フォームデータをlocation.replaceで次のページに渡すには

    php+mysqlで会員制のサイトを作っており、 javascriptも使っているのですが、 行き詰ってしまいましたので、助けてください。 投稿をインプット→確認→データ登録→終了 のように処理させているのですが、 ブラウザの"戻る"ボタンを押すと、不都合が生じるので、 投稿のページの履歴を残さないようにしたいと思います。 そのためにlocation.replaceを使えば、履歴を残さず、 次のページに進むことができるのですが、 フォームのデータを次のページに渡すことができません。 すみませんが、 履歴を残さずに、フォームデータを次のページに渡す方法を、 教えていただけないででょうか。

  • 処理後のページ内移動について

    色々と見てみたのですが、どうしても探したい情報が見つからず 解決できません。住みませんが助けてください。 PHPでメールフォームを作成しています。 はじめのページでファーム入力し、その後サブミットボタンをクリックすると、 otoiawase.phpに情報を渡し入力チェックをします。 入力チェックでエラーがあれば、リストでエラーを表示するのですが、 その際に、エラーチェック後ページ内の途中の位置にジャンプしたいのです。 というのもフォームの入力位置がページの下部分にあるので、 フォーム入力部分が丁度スクロールなしで見れる部分に表示させたいのです。 要は<a href="#bbb">, <name="bbb">のような... 別のページに飛ぶ際はheader("Location: confirm.php#bbb");で 良かったのですが、同一ページ内でそういった処理をするには どうすれば良いのでしょうか?

    • ベストアンサー
    • PHP
  • 「戻る」ボタンで値の保持

    PHPやCGIなどで同じファイルにデータをポストした後に、ブラウザの「戻る」ボタンで戻ったときに「ページの有効期限切れ」になってしまうのですが、回避する方法はないでしょうか。 元のページとフィールドに入れた値を保持することはできないでしょうか。 他のファイルからポストしない限り値の保持は難しいのでしょうか。

    • 締切済み
    • PHP
  • PHPによる問い合わせフォームのデーターの受け渡し

    Webサイトを作成しており、現在は問い合わせフォームに取り組んでおります。 そこで、問い合わせフォームで入力したデータを送信した後の、確認画面が上手くできません。 PHPのファイルには以下のように記載しました。 しかし、実際のブラウザの問い合わせフォームのページから送信ボタンを押しても、全く何も表示されておりません。真っ白のままです。 そういえば、問い合わせフォームのページ全体のデザインのまま、データを引き継ぐにはどうしたら良いのでしょうか? PHPファイルに何か特別なコードを記載する必要があるのでしょうか? ちなみに、htmlファイルとphpファイルのhead情報は同じです。 何かアドバイスをして下さる方、お願いします!! <?php $name=$_POST['name']; if($name=='') { print'入力されておりません。'; } else { print $name; } ?>

    • ベストアンサー
    • PHP
  • 外フレームでインラインフレーム内のデータを保持したい

    お世話になります。 1つのページに1つのインラインフレームがあり、インラインフレーム内のページを外フレームにあるボタンで切り替えます。 それぞれのインラインフレームには共通した入力項目があります。 ページを切り替えたときに、元インラインフレーム内に入力した共通入力項目のデータを、切り替わったインラインフレームにも保持しておきたいです。 たとえば、プルダウンで年月日を選んだ後にインラインフレーム内を切り替えた後にも、選んだ状態にしたいのです。 セッションに保持したらいいだろうとは思うのですが、具体的にどう制御すればうまくデータが渡せるのかが分からず困っています。 お分かりになる方がいらっしゃったらご助言ください。 よろしくお願いいたします。