- - PR -
Session変数の値が変わる現象
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-07-18 18:09
こんにちわ
Win2000 + ASP.Netを使って開発しています。 '-------------------Public.vbの宣言----------- Module _Public Public Structure comArrUser_Struct Public USER_ID As String Public USER_NAME As String End Structure Public ArrUser() As comArrUser_Struct End Module '--------------------------------------------- '-------------------Login Page-------------- Redim Preserve ArrUser(20) ArrUser(0).USER_ID = txt_User_ID.text.ToString ArrUser(0).USER_NAME = txt_User_Name.text.ToString Session("USER") = ArrUser '--- 配列をセッション変数に格納 '--------------------------------------------- '---------------------次のPage---------------- Dim strID as string Dim strName as string Dim strSQL as string ArrUser = Session("USER") '--- セッション変数を配列に返上 strID = ArrUser(0).USER_ID '--- ログインID strName = ArrUser(0).User_Name '--- ログイン名 strSQL = "SELECT * FROM XXX_TBL WHERE USER_ID='" & strID & "'" ...... ...... ユーザー詳細を表示 '--------------------------------------------- で、AさんとBさん二人がいます。 AさんとBさんがほぼ同時にログインすると、 AさんがBさんになったり、BさんがAさんになったりします。 で、AさんとBさんが時間をずらしてログインしますと、 正しく表示されます。 今の段階では、「Public ArrUser() As comArrUser_Struct」が 犯人ではないかと考えていますが、 決定的な理由がなく、自分の知識も乏しい・・・ 良ければご教授ください。よろしくお願いします。 | ||||||||
|
投稿日時: 2003-07-18 18:57
確か、モジュールのPublicメンバってグローバル扱いだったような…。 以前この掲示板であったこのスレッドなんか参考にしてみてはいかがでしょうか。 [ メッセージ編集済み 編集者: FOX 編集日時 2003-07-18 19:00 ] | ||||||||
|
投稿日時: 2003-07-22 08:12
そもそも、Module内にPublic変数宣言しているだけでなく、その変数を無条件に上書きしていますから、
たまたま、正しく見えるだけでしょう。 Module内でなく、各ページに Dim ArrUser() As comArrUser_Struct と宣言していれば、正しく表示されるでしょうけど…… どうしても Module + Structure じゃないとまずいですか? |
1