いつもお世話になっています。
セッション変数に値をセットして、
あるボタンをクリックするとNEWウィンドウが
開かれて、そのセッション変数を使って処理を
したいのですが、何故かセッション変数が消えてしまいます。
社内のパソコンでは上手く動くのに同じプログラムをほかのパソコンに入れたらセッション変数が消えてしまう現象がでています。
「教えて!goo」をみてセキュリティーの設定もやってみたのですが・・・

ちなみに上手く動くのはIE6.0で動かないのはIE5です。
このバージョンの違いもなにか影響しているのでしょうか?

よろしくお願い致します。

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

A 回答 (1件)

セッション変数のデータ型はオブジェクト型ですか?


ASP開発でのセッション多様は禁物だと思いますので、DBオブジェクトをセッションで渡していないのでしたらGetパラメータ渡しの方が無難に思えます。
この現象、以前に経験しましたが、思い出せません。
実際に行けば分かるのでしょうけど・・・無念!!
    • good
    • 0
この回答へのお礼

ありがとうございました。
状況としては、最近購入した新しいパソコンにPGを入れ直したら問題なく動作しております。
(作成した環境と同一の環境のPCです。)
緊急を要していたのでこれで対応してしまいました。
こちらからの質問の内容が不十分なためどなたからもご回答いただけないのかと落ち込んでいたので大変嬉しかったです。
本当にありがとうございました。
早速、PGを見直してみます。

お礼日時:2003/11/06 09:27

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

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

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

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

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

QASPで画面間のパラメタ受け渡し

こんばんは。ASP初心者です。
ASPでWEBページの作成を行っています。画面遷移をResponse.Redirect()で行っているのですが、遷移前のページと遷移後のページでパラメタを受け渡したい場合はSession("hoge") = "hogehoge"のようにセッションに入れる以外、何か方法はないでしょうか。リクエスト間でパラメタ渡せればがいいので、セッションを通じて保持しておく必要がないのです。クエリを使用するとアドレス欄に変数の値が見えてしまうのでできれば使いたくありません。

Aベストアンサー

1. Cookieを使う
2. 画面遷移を postで行い、hidden項目に値をセットする (要JavaScript)

私は面倒なのでセッション変数使ってますが、必要なくなればセッションをクリアすれば良いだけだと思います。

Session.Contents("hoge") = Empty

Q二人でWEBアプリを動かしているとセッションが切れる

Windows2000 + SQLServer2000 + IIS5.0 + VBScriptで開発を行っています。二人で開発しているのですが、作成したアプリケーションを同時に動かしている時に、セッションが切れてしまう現象が頻繁に発生します。
このWEBアプリケーションは、ユーザIDとパスワードでログインするとSESSION変数に値を入れます。すべてのページにログインチェックのコードを埋め込んでおり、SESSION変数に値がないとログインのエラーとします。
一人で動かしているときには、20分程度の放置でセッションが切れてログインエラーとなるのですが、二人で同時にログインして動かしていると、2分程度でログインエラーとなってしまいます。

イベントログを見ても気になるエラーは発生していないように思われます。原因としてどのようなものが考えられるでしょうか。

よろしくお願いいたします。

Aベストアンサー

20分でセッションが切れるのはSession.Timeoutを記述していなければ、
IIS5のデフォルト設定なので、正しい動作だと思われます。

あと思いつく範囲では global.asa を二人のどちらかが開いたままで、エディタが自動保存していないでしょうか?

なお、別々のユーザーが同じセッション変数に異なる値を入れても問題ありません。
ANo.2で言われていることはアプリケーション変数の場合ですね。

同様にユーザーAさんとBさんがログイン中で、ユーザーAさんが Session.Abandon したり、タイムアウトになってもユーザーBさんのセッションまで切れることはありません。

Qjavascriptでセッションを取得

javaのsession.setAttribute()でセットした値をjavascriptで取得することは可能なのでしょうか?
可能であれば、手法を教えていただければと思います。
よろしくお願いします。

Aベストアンサー

セッションIDの保存はcookieかURLに連結する方法しか有りませんから、
JavaScriptでdocument.cookieや<a href="">を解析するなどしてセッションIDを取得することは可能だと思います。

セッションIDとセッションの値・内容との関連づけはサーバーで行われていますから、
その値を取得するにはAjaxなどで読み込むとかしないと無理だと思います。

QセッションIDについて

セッションIDについて

ASP.NETで開発しています。
セッションフィクセーション対策でログイン画面で初期表示のみセッションを削除しています。
「ログイン」ボタンを押して、Postbackされる時にセッションIDが再発行されます。
ここまでの流れはいいのですが、もう一度「ログイン」ボタンを押下すると
一回目の「ログイン」ボタン押下時に再発行したセッションIDが、二回目の「ログイン」ボタン
押下時にも再発行してしまいます。

私は一回目のPostback時にセッションIDが再発行されたら、
それ以降のPostback時は既存のセッションIDを使用する動きを予想していました。

なぜ二回目以降のPostback時にもセッションIDが再発行されてしまうのでしょうか?
ご存知の方がいましたら教えていただけないでしょうか。

Aベストアンサー

session fixation対策ということはcookieモードですよね?
セッションオブジェクトに何も格納していない場合、ページ要求ごとにSessionIDが再発行されるようです。
http://msdn.microsoft.com/ja-jp/library/system.web.sessionstate.httpsessionstate.sessionid(VS.80).aspx
--- ここから引用 ---
Cookie ベースのセッション状態を使用する場合、ASP.NET は Session オブジェクトが使用されるまでセッション データのストレージを割り当てません。その結果、セッション オブジェクトがアクセスされるまで、ページ要求ごとに新しいセッション ID が生成されます。アプリケーションがセッション全体に対する静的な ID を必要とする場合は、アプリケーションの Global.asax ファイル内に Session_Start メソッドを実装し、Session オブジェクト内にデータを格納してセッション ID を固定するか、アプリケーションの別の部分のコードを使用して、明示的に Session オブジェクトにデータを格納します。

アプリケーションが Cookie なしのセッション状態を使用する場合、セッション ID は最初のページ ビューで生成され、セッション全体で保持されます。
--- ここまで引用 ---

私も同様の対策を調べていて、別のサイトでこの件を見つけました。
http://d.hatena.ne.jp/iltc/20080603/1212481925
※無許諾リンク御免

参考URL:http://msdn.microsoft.com/ja-jp/library/system.web.sessionstate.httpsessionstate.sessionid(VS.80).aspx

session fixation対策ということはcookieモードですよね?
セッションオブジェクトに何も格納していない場合、ページ要求ごとにSessionIDが再発行されるようです。
http://msdn.microsoft.com/ja-jp/library/system.web.sessionstate.httpsessionstate.sessionid(VS.80).aspx
--- ここから引用 ---
Cookie ベースのセッション状態を使用する場合、ASP.NET は Session オブジェクトが使用されるまでセッション データのストレージを割り当てません。その結果、セッション オブジェクトがアクセスされるまで、ペ...続きを読む

Qセッション変数の破棄と再設定

セッションを破棄する『Session.Abandon』を実行すると、セッション変数が全部破棄されます。
全部は破棄したくないのでいろいろパターンを考えてみたのですが
うまくいきません。

(1)破棄したくないものを一旦ワークへ退避し、Session.Abandon実施後に、再びセッションへ設定する。
→どうも、一度破棄してしまうと再びセッションへ設定が出来ないようで、処理ができません

(2)使用したセッション変数すべて(破棄したくないものを除く)に ""(空文字列)をセットする。
→これだと一応はOKなんですが、他への流用がきかないため、できればあまりやりたくないです^^;
(セッション変数自体も破棄される訳ではないのであまり使いたくないというのもありますが・・・)


最悪は上記(2)で対応できるのですが、他に何か良い対応策があれば教えていただきたいです。
お願いします。。。

Aベストアンサー

こんにちは。

(1)について
Abandon メソッドを呼び出すと、実際に削除されるのは現在のページのスクリプト コマンドの処理がすべて完了した時点です。
つまり、Abandon を呼び出したページ内であれば Session オブジェクト内の変数にはまだアクセスすることができますが、その後の Web ページではアクセスできなくなります。

Application変数に退避したら、いかがですか?

参考URL:http://www.microsoft.com/japan/developer/library/jpiis/iishelp/iis/asp/vbob5tpq.htm

QASP Session変数名の取得

ASP(VBScriptにて)現在使用されているセッション変数の一覧を変数名(Key)と共に取得したいです。
どのようにすればできますか?

Aベストアンサー

Dim Key
For Each Key in Session.Contents
Response.Write Key & "=" & Session.Contents(Key) & "<BR>"
Next

QMAX値を条件にデータを取得するには?

SQL文で困っています。
ご教授下さい。


下記のようなデータがあった場合、それぞれの区分毎に
年月が最大(最新)のデータを取得したいです。
(実際には1レコードにその他項目があり、それらも取得します。)
<検索対象データ>
区分 年月   金額
-----------------------------
A   200412  600
A   200503  560
B   200311  600
B   200508  1000
B   200504  560
C   200508  400
C   200301  1100


<取得したいデータ>

区分 年月   金額
-----------------------------
A   200503  560
B   200508  1000
C   200508  400

よろしくお願いします。

Aベストアンサー

テーブル名をXXXとすると次のようなSQLでよいと思います。(最善の方法かどうかは自信がないですが)

select B.* from (select 区分, max(年月) as 年月 from XXX group by 区分) As A
inner join XXX as B on A.区分 = B.区分 and A.年月 = B.年月
order by B.区分

QjavascriptでASPにデータを渡す

javascript,ASPの初心者です。
現在親画面にあるデータを子画面にて使用したいと思っています。
親画面の、データをjavascriptのonclickを使用して関数に渡すところまでは出来ています。その関数内でwindow.open()をコールし子画面を呼び、Page_Load()内でデータを使用したいと思っているのですが、定義?の方法が分かりません。分かりづらい説明ですみませんが、よろしくお願いいたします。

Aベストアンサー

ぉぉぅ。。。自分と同じような境遇の人がww

自分も、JavaScript、ASPの勉強を始めたばかりの初心者っすww
初心者同士、よろしく~ ̄▽ ̄


んーと。。。
その関数を渡せればいいわけっすね。。。???




<Script language ="JavaScript">
function Go_child(send){
document.form.sendchild.value = send;
win_style = "";(ウインドウの構成要素(ツールバーの有無とか。
win_name = " ";(ウインドウの名前?
window.open("child.asp",win_name,win_style);
}
</script>
<body>
<%
ASPの構文~。

a = ~~~ ←aを子画面に。と過程。
%>
<form name ="form">

<input type ="button" name = "button1" onClick="Go_child(<% =a%>)">
<input type ="hidden" name ="sendchild" value ="">
</form>
</body>




<Script language ="JavaScript">
function getsend(){//JavaScriptで持ってくる場合。?
document.form2.text2.value = opener.document.form1.text1.value;
}
</script>
<body onLoad="getsend()">
<%'ASPで持ってくる場合。?
Dim bbb
bbb = Request.Form("sendchild")
%>
<form name ="form2">
<input type ="text" name ="text2">
<input type ="text" name ="text3" value ="<% =bbb%>">

</form>
</body>


JavaScriptでもASPでも受け取れるかな?
動作は確認してませんけど。。。
こんな感じでいいのかな?と思います(汗

ぉぉぅ。。。自分と同じような境遇の人がww

自分も、JavaScript、ASPの勉強を始めたばかりの初心者っすww
初心者同士、よろしく~ ̄▽ ̄


んーと。。。
その関数を渡せればいいわけっすね。。。???




<Script language ="JavaScript">
function Go_child(send){
document.form.sendchild.value = send;
win_style = "";(ウインドウの構成要素(ツールバーの有無とか。
win_name = " ";(ウインドウの名前?
window.open("child.asp",win_name,win_style);
}
</script>
<body>
...続きを読む

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。

Q  これの意味教えて下さい。

これの意味教えて下さい。
タグの
<tr>
<td></td>
</tr>
中に入っている
意味はなんですか?

Aベストアンサー

空白(半角スペース)として使用されることが多いですが、
を使用すると改行されません。

たとえばOK WaveのOKが行末あたりに来たときに、
(1)OKとWaveの間を半角スペースとする場合
~~~OK<改行>
Wave~~~

となりますが、
(2)OKとWaveの間をとする場合
~~~<改行>
OK Wave~~~

となります。


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

人気Q&Aランキング

おすすめ情報