• ベストアンサー

HTMLフォームから変数に格納した値をずっと保持したい

hogo_1.html の <INPUT type="text" name="name" size="30"> のところで、$in{'name'}に入った値を、$hogenameに格納しました。 hogo_1.htmlは、スキンで、処理によって、hogo_2.htmlのスキンに切り替わるところがありますが、切り替わった際に、$in{'name'}の値はもとより、$hogenameに格納していたまで、NULLになってしまいます。 $hogenameに格納した値を、ずっと保持させておきたいのですが、クッキーを使わないと無理でしょうか? クッキーを使わないでも、ずっと保持させておく方法がありましたら、教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • 2NN
  • ベストアンサー率40% (143/353)
回答No.1

hogo_2.htmlに <input type="hidden" name="name" value="$hogename"> をprintし、 再度格納すれば問題ないかと思います。 質問の解釈がずれていたらごめんなさい。

THUBAN
質問者

お礼

早速のご回答ありがとうございます。 hogo_2.htmlに <input type="hidden" name="name" value="$hogename"> をprintさせるというのは、どういう意味でしょうか? print文を用いて、何か行うということですか?

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • 2NN
  • ベストアンサー率40% (143/353)
回答No.5

#3 の補足ですが、 <input type="hidden"... はhogo_1.htmlと同じようにFORMでhogo_2.htmlの次のページに渡す必要があります。 HTMLで用意されているスキンでは若干難しいかもですね。 何か有名な配布スクリプトでもお使いでしょうか?

THUBAN
質問者

お礼

いろいろ試してみましたが、やはり無理そうなので、結局、クッキーで保持させることにしました。 お手数おかけしました。 どうもありがとうございました。

すると、全ての回答が全文表示されます。
  • hana_Z
  • ベストアンサー率17% (28/157)
回答No.4

>不特定多数の人から同時にアクセスがかかった場合 データベースとは、SQLとかDBのことです。 テキストファイルでもできますよ。 識別のIDか何かを各ユーザに渡して、テキストファイルにIDとPWをレコード(追加書き込み)します。 テキストファイルからPWを参照する時は、割り振った任意のIDからPWを抽出すれば良いかと思います。 どうでしょうか。

THUBAN
質問者

お礼

「識別のIDか何かを各ユーザに渡して」ですが、自動的にユニークなIDを発生させて、そのIDと<INPUT type="password" name="pwd" size="10">で格納されたPWを、DB(もしくはファイル)に書き出すということでしょうか? その場合、識別のIDはどうやって発生させればよいでしょうか?

すると、全ての回答が全文表示されます。
  • 2NN
  • ベストアンサー率40% (143/353)
回答No.3

#1 ですが、 input type="hidden"(表示されないinput)を使って、再度同じ値をセットします。 print を使ってhogo_2.htmlの中にそれを記述します。 hogo_2.htmlに見えないフォームを作って、 hogo_1.htmlで送信した内容を再度設定・送信するということです。

THUBAN
質問者

お礼

hogo_1.htmlもhogo_2.htmlも、CGIによって作り出されるHTMLではなくて、あらかじめHTMLファイルとして用意されてあるスキンです。 そのスキンのHTML内に、<INPUT type="hidden" name="pwd" value="$hogename">と記述しておけばよろしいのでしょうか? hogo_1.htmlには、 <INPUT type="password" name="pwd" size="30"> <INPUT type="hidden" name="pwd" value="$hogename"> hogo_2.htmlには、 <INPUT type="hidden" name="pwd" value="$hogename"> と記述してみましたが、$in{'pwd'}内には何も格納されませんでした。

すると、全ての回答が全文表示されます。
  • hana_Z
  • ベストアンサー率17% (28/157)
回答No.2

1. input type をhiddenとして渡す。 2. sessionに引き渡す。 3. データベースにデータを一時格納して、参照する。 というような方法で、解決できないでしょうか。

THUBAN
質問者

お礼

ご回答ありがとうございます。 hogo_1.html の <INPUT type="text" name="name" size="30"> ですが、実はパスワードなので、実際は <INPUT type="password" name="pwd" size="10"> と記述しています。 ちなみに、<INPUT type="hidden" name="pwd" size="10"> と記述してみましたが、入力ボックスが見えなくなりました。 sessionに引き渡す方法ですが、sessionの使い方が分からずで、取りあえずsessionとは何かから調べてみないと・・ データベースにデータを一時格納する方法ですが、たしかにテキストファイルなどに書き出して、それを読み込むことで実現できるのですが、不特定多数の人から同時にアクセスがかかった場合、値が書き換えられてしまうので。 仮にファイルロックしたとしても、ロックしている間、他の人が機能しなくなると思われますが、いかがでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A