Webで、画面遷移してもデータを保持させるには、
私の知っている範囲では、
(1)隠しフォームを使う
(2)Cookieを使う
という方法があると思います。

これらの方法を使った場合、
保持できるデータ量の上限や、
何画面くらいまではデータ保持可能なのか?といった
制約はどうなっているのでしょうか。
具体的に自分で使ったことが無いので、分からなくて困っています。
「何Kバイトまで」「何画面まで」といったことがお分かりの方、
教えてください。

それと、他に、こんな方法があるよ!
この方法だと、ここまでデータが持てるよ!というのを
ご存知の方も、教えてくださると嬉しいです。
(NTサーバでASPを使っても、データの保持はできるんでしょうか?)

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

大量のデータを保存したい場合、


IIS/ASP の考え方をうまく利用すればいいかと思います。

保存したいデータをサーバー側で管理するようにします。
それぞれのデータには、識別番号(ID)を設定します。

ID をクライアントとの間でやり取りするようにします。

ID をクライアントとやり取りする方法としては、次のようなものがあります。
1. Cookie : IIS/ASP で利用している方法
 利用者のブラウザが Cookie を使えることが必要。
 i-mode 等では使えない
2. クエリー引数
例: http://server/test.asp?id=00001
 クエリー引数をすべてのサーバー送信時に
 つけることが必要。
 ユーザーがブックマークする場合も考えておく
3. input type=hidden を使う
 フォーム形式が必要
 クエリー引数形式との併用も検討

なお、実装にあたっては、次の点も注意する必要があります。
1. データを保存する期間
 データを破棄するタイミングをいつにするのか。
 IIS/ASP の場合、その ID で最後にアクセス
 されてから、一定時間たつと自動的に
 削除します。
2. ID は延々と増えるのか ? それとも再利用するのか
 管理用の識別番号を作る場合、番号が
 再利用するかどうか、増えつづけるのかという
 問題があります。
 IIS/ASP の場合、IIS をリスタートすると
 再利用する可能性があります。
3. ID のセキュリティの確保
 ID を他の人が利用すると、他人のデータに
 アクセスできる可能性があります。
 ID を大きな値にして、類推しにくくし、
 かつ、特定のIDは、特定のIPアドレスから
 のみ利用できるようにするなどの対応が
 必要です。

なお、画面間で値を保存する方法として、
隠しフォーム、Cookie、ASP 以外にも、
ウィンドウ、フレームを使う方法もあります。
ウィンドウ、フレームを、遷移する画面とは
別に用意しておき、保存しておきたい
データをブラウザ上のスクリプトから
ウィンドウ、フレームに書き込むという
方法です。

あと、GET、POST できるデータ量は、ブラウザ
および、ブウラザのバージョンや、
間に入っているProxyやファイアウォールに
よって、変わります。

以上、参考にしていただければと思います。

 
    • good
    • 0
この回答へのお礼

kawabataさん、ありがとうございます。まだ初期検討段階なので、ASPが使える環境を提案できるか分からないのですが、やはりWebアプリケーションサーバーを利用する方向で考えたほうが、自由度が高くなりそうですね。詳細に解説頂き、大変勉強になりました。今後共よろしくお願いします。

お礼日時:-0001/11/30 00:00

 隠しフォームの場合は、POSTを使えば理論上はいくらでもOKのはずですが、実際にはそんな何十キロバイトも渡したりするのはよくないようです。


 またクッキーの場合は、上限はよく分かりませんが、せいぜいが1KB未満に抑えるのが慣例になっているようです。(4~5KB入れてるの見たことありますけど)

 また、どれくらいの画面間でデータを渡しつづけられるかというのは、クッキーの場合は同一サーバー内のすべて、隠しフォームは当然次の画面までです。

 で、ASPで作るのであればクッキーとか使うよりもSessionとApplicationを使ったほうがいいと思います。
 こいつらは考え方はクッキーと同じですが、サーバー側にデータを持ちます。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます!
数キロであれば、どちらでも問題ないということですね。

ASPを使ったほうが、運用上も良さそうなので、
もう少し検討してみたいと思います。

今後共よろしくお願い致します。

お礼日時:-0001/11/30 00:00

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q画面の設定以外で文字の大きさを変更したい場合

こんばんは。WinXPを使っています。
画面のプロパティーから解像度を変更しても、文字の大きさが大きく感じます。WinXPの画面の設定から文字の大きさを変更する場合は解像度を変更しればいいと思うのですが、それでも小さくならない場合はどのようにして文字を小さくする事ができるでしょうか?

Aベストアンサー

解像度以外の手段では
画面のプロパティ→「デザイン」タブ→詳細設定
で、アクティブタイトルバー、パレットタイトル、ヒント、メッセージボックス、メニュー、選択項目、非アクティブタイトルバーの文字の大きさをポイント単位で変更できます。

ブラウザの文字の大きさなら、ブラウズの最中にマウスのスクロールボタンをCtrlボタンを押しながらグリグリすると5段階に変更できます。

ExcelやWordでしたら、ツール→オプション→全般タブから標準の文字の大きさをポイント単位で変更できます。

Qselectboxの画面遷移で、postデータを渡したい。

selectboxを選択したときに、画面遷移してpostで変数を受け渡しできるようにしたいです。
下記のように作成し、画面遷移するのですが、postでデータを受け取ることができていません。
どなたか教えていただけると助かります。
よろしくお願いします。

<script type="text/javascript"><!--
function post(num){
obj = document.test.select;
href = obj.options[index].value;
document.test.num.value=num;
location.href = href;
}
//--></script>

<form name="test" method="post">
<select name="select" onChange="post('126')">
<option value="http://test/aaa.html">aaa</option>
<option value="http://test/bbb.html">bbb</option>
</select>
<input type="hidden" name="id" value="">
</form>

selectboxを選択したときに、画面遷移してpostで変数を受け渡しできるようにしたいです。
下記のように作成し、画面遷移するのですが、postでデータを受け取ることができていません。
どなたか教えていただけると助かります。
よろしくお願いします。

<script type="text/javascript"><!--
function post(num){
obj = document.test.select;
href = obj.options[index].value;
document.test.num.value=num;
location.href = href;
...続きを読む

Aベストアンサー

意図がよくわからないのと、ご提示のスクリプトとHTMLが整合していないので、混乱するけれど・・・

要は"126"というデータを送りたいけれど、送れていないという意味でいいのかしら?
指定アドレスに遷移するようですから、submitするようにしてしまえばいいのでは?
(遷移しないのならajaxを利用)


…ってことで、いろいろと推測混じりですが、こんなんでどうでしょう?
function post(num){

var frm = document.forms["test"],
elms = frm.elements;

elms["id"].value = num;
frm.action = elms["select"].value;
frm.submit();

}


※受け取る側がHTMLの場合は、cookieやWeb Storageを利用するのがよろしいかと。
 (クロスドメインではうまくいきませんが…)

Q「新しいウィンドウで開く」で開く画面の大きさの変更の仕方を教えて下さい。

 恐れ入ります。初歩的な質問で済みません。
検索結果などがたくさん出て、それら一つ一つを右クリックで「新しいウィンドウで開く」をクリックし表示される画面の大きさを変更するにはどうしたら良いのでしょうか?
 ちなみに今は画面の中央に小さく表示されるのですが、目一杯の大きさに変更したいのです。
どうか宜しくお願い致します。

Aベストアンサー

>検索結果などがたくさん出て

タブブラウザを使った方がいいかな~と思います。

IEだと仰る様に一つ一つを右クリックで「新しいウィンドウで開く」をクリック
するのも面倒ですし、下におろすのも面倒です。

タブブラウザなら、画面がウインドウだらけになるうっとうしさも無いですし、
ポップアップも制御できます。

画面の切り替えもタブをクリックするだけですし、たくさんひらいた
ページをまとめて閉じることもできます。

ご存知でしたら失礼しました。

Qpostで引き渡したしたデータは、いつまで保持しているのですか?

たとえば検索サイト等で、<select>タグとかで選択した都道府県データをpostで次のページにデータを引き渡したとします。次に別のページに遷移したとき、そのpostで引き渡したデータ、つまり、都道府県のデータはまだ持っているのでしょうか?また、もし持っていないなら、持たせる方法はあるでしょうか?

Aベストアンサー

HTMLでは
POSTしたページにしか渡されません。
次に別なページに行った時には渡されません。

POSTされた値を保持し続けたいのであれば、
なにかしらのサーバーサイドスクリプト等を使いプログラムする必要があります。
JavaとかPHPとかRubyとかPerlとかとかとか・・・

JavaScriptでも可能ではあります。

QOutlookメールで、画面の文字の大きさを変更するには、どうしたらよ

Outlookメールで、画面の文字の大きさを変更するには、どうしたらよいのですか。

Aベストアンサー

画面の文字の大きさは、
[表示] メニュー → [現在のビュー] → [現在のビューの編集] →
[その他の設定] と [自動書式] の項目でそれぞれフォントの大きさが変更できます。
また、送信メールとテキスト形式の受信メールのフォントの大きさは、
[ツール] メニュー → [メール形式] タブ → [ひな形およびフォント] → [ひな形] タブでそれぞれ変更できます。

Qsubmitボタンで次の画面に遷移したい

<form enctype="multipart/form-data" method="POST" name="nForm" action="Complete.html" >
<input type="text" name="name" size="10" class="name" maxlength='10' required />
<input type="text" name="mail" size="50" class="mail" maxlength='50' required />
<input type="text" name="memo" size="20" class="memo" maxlength='20' required />
<input type="file" name="photo" size="30" class="photo" required />
<input type="submit" value="送信" class="post">
</form >
(php部分は省略しています)

これで送信ボタンを押すと外面遷移はうまくいくのですがフォームのデータがうまく保存されません。
action="Complete.html"の部分を消すとうまく保存されるのですがなにが原因なのでしょうか?

またこの方法ではできない場合すべての項目が入力された状態で「送信」ボタンが押されるとサーバーにデータが保存されかつ画面が遷移するようにするためにはどのようにすればよいのでしょうか?

<form enctype="multipart/form-data" method="POST" name="nForm" action="Complete.html" >
<input type="text" name="name" size="10" class="name" maxlength='10' required />
<input type="text" name="mail" size="50" class="mail" maxlength='50' required />
<input type="text" name="memo" size="20" class="memo" maxlength='20' required />
<input type="file" name="photo" size="30" class="photo" required />
<input type="submit" value="送信" class="post">
</form >
(php部分は省...続きを読む

Aベストアンサー

>header("Location:Complete.html");はどこに入れるのでしょうか?
>無知で質問ばかりして申し訳ないのですが、回答お願いします。

いや、むしろどうしたいか?でしょう

>action="Complete.html"の部分を消すとうまく保存される

とあるので、うまく保存されたかどうかチェックする何かがあるのですよね?

if(umaku_hozon_dekita()){
header("Location:Complete.html");
}

function umaku_hozon_dekita(){
いろいろチェックしてうまく保存できてたら
return true;
だめなら
return false;
}
うまく保存できたときにはページに飛び、うまくいかなければそのまま表示です。

Q最初に表示されるIEの画面の大きさは、変更可能?

こんにちは、みなさん。

インターネットを見る時に、最初に表示される、インターネットエクスプローラーの
画面の大きさは変更できますか??

変更できるなら、どんなやり方ですか??

ご存知の方、いらっしゃいましたら、宜しくお願いします。

Aベストアンサー

IEを起動して始めに表示される画面(ホームページ)の状態で操作します。
マウスを使って表示させたい大きさにIEの全体のウィンドウを変更します。
任意の大きさと位置が決まったら「Shiftキー」を押しながら閉じるボタンをクリックしてIEを終了させます。

※Shiftキーでうまくいかない場合はShiftキーの替わりにCtrlキーを使って試してみてください
※大きさを決めるときは、いつも始めに開いたページでウィドウの大きさ・位置を決めるのがコツです
※IEにい限らず、エクスプローラも同じ要領で変更できます

Q遷移先のページにデータを渡したい

サーバー側はVBSで、
クライアント側は、javascriptやHTMLにて、画面を作成している初心者です。
ページの遷移先にデータが渡せなくて困っています。

通常であれば、<FORM ACTION~>でデータを渡しているのですが、
今作成しているページのみ違った方法で画面を遷移させています。

社員名を入力すると、その社員名が「依頼者」である
「依頼書No」をデータベースから取ってきて、
「依頼書No」、「依頼部署」、「依頼者」を書き出して、
「依頼書No」の部分をクリックすると、
「依頼書No」が同じ詳細な画面に移動するようにしています。


以下がソースになります。(これVBSのソースかもしれません)

<%
While Not Rs.EOF
Response.Write("<tr><td style="" text-align: right;""><a href=""syousai5.asp?IraiNo=" & Rs("依頼書No") &""">" & Rs("依頼書No") & " " & "</a></td>")
Response.Write("<td>" & Rs("依頼部署") & " " & "</td>")
Response.Write("<td>" & Rs("依頼者") & " " & "</td></tr>")
Rs.MoveNext
Wend
%>

詳細画面(syousai5.asp)に依頼Noは渡せているのですが、
他のデータ(ここには書いてませんが、社員名と所属部署)も渡したいと思っています。

javascriptの
window.onload=function()
で試そうと思いましたが、うまく行きません。

根本的にこのソースの書き方だとできないのかもわかっていません。
もし違う方法で表示することができるなら教えていただけないでしょうか?

また、このままのソースでもいいなら、
window.onload=function()などを使って、データを遷移先のページに渡す方法があれば教えていただけないでしょうか。

初歩的な質問ですが、どうかよろしくお願いします。

サーバー側はVBSで、
クライアント側は、javascriptやHTMLにて、画面を作成している初心者です。
ページの遷移先にデータが渡せなくて困っています。

通常であれば、<FORM ACTION~>でデータを渡しているのですが、
今作成しているページのみ違った方法で画面を遷移させています。

社員名を入力すると、その社員名が「依頼者」である
「依頼書No」をデータベースから取ってきて、
「依頼書No」、「依頼部署」、「依頼者」を書き出して、
「依頼書No」の部分をクリックすると、
「依頼書No」が同じ詳細な画面に移...続きを読む

Aベストアンサー

サーバーにデータを送るのでしたら、
>「依頼書No」の部分をクリックすると、
 の部分をフォームにして置けばよいだけですが???
<form action="[URL]">で、デザインをスタイルシートで普通の形に直しても良いし、
<a href="[URL]">依頼書No</a>
でもよい、この場合データはgetで渡されますから、QUERY_STRINGにデータを書きます。

Qようこそ画面アイコン大きさ変更

ようこそ画面でアイコンの大きさを変更したいのですが、どのようにしたらよいでしょうか、
ちなみに以下のレジストリー変更ではダメでした。
HKE_CURRENT_USER→desktoptop→logpixelsで数値の値を変える

Aベストアンサー

変えられないと思います。

Q複数のデータをダウンロードさせる時、自動で最後のデータまで一つずつダウンロードが完了する方法は?

Webページで重いデータ(重いデータの場合だと600MB強ある)をダウンロードする
ようにしているのですが、たまにお客様から、
「200MB過ぎたあたりでダウンロードが勝手に途中で終わってしまう。しかも終了したように見えてそうなる」
などという、ダウンロードが途中で中断されることが起こっております。
こちらでダウンロードを試すのですが、何度やっても普通に最後まで正常に完了するので困っております。

そこで、複数のデータにデータを分割してダウンロードしてもらおうとしているのですが、
普通にデータを分割数分(7個になる)リンクさせるだけでは、最後のファイルがダウンロード完了するまでの間、ずっと張り付いていなければなりません。

IEだと同時に2ファイルしかダウンロードできないですし、Firefoxな同時制限のないブラウザだからといっても、同時に全ファイルをDLしているとどれかがダウンロード強制停止する場合もあります。

よって、ダウンロードさせる時、一つ目がダウンロードできたら自動で二つ目のダウンロードが開始され、二つ目が終われば自動で三つ目が~と自動で次々に移行していき、最後のファイルまで続けられ、ダウンロードが停止するときは全データ数がダウンロード完了している状態にしたいのですが、どのようにしたら良いでしょうか?

Webページで重いデータ(重いデータの場合だと600MB強ある)をダウンロードする
ようにしているのですが、たまにお客様から、
「200MB過ぎたあたりでダウンロードが勝手に途中で終わってしまう。しかも終了したように見えてそうなる」
などという、ダウンロードが途中で中断されることが起こっております。
こちらでダウンロードを試すのですが、何度やっても普通に最後まで正常に完了するので困っております。

そこで、複数のデータにデータを分割してダウンロードしてもらおうとしているのですが、
普通に...続きを読む

Aベストアンサー

「ご指摘の悪い使い方を私がしなければそれで済む話かも知れません。
あ、いや違いますか、私が他で使用しなくとも、うちのスタッフがこれを知れば悪用を思いつくかも、ということなんでしょうかね。」
解釈が少し違います。
誰もが、そのようなプログラムを作れないような仕組みになっている訳です

作れたとしたら、それは新たなセキュリティホールの発見という事です。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング