プロが教えるわが家の防犯対策術!

セッションについて教えて下さい。
指定のID、パスワードでログインしようと思っています。

ソースを記載しますので、お教え下さい。

ID:aaa パスワード:111とします。
[送り側フォーム]
<form action="/test2.asp" method="POST" id=form1 name=form1>
<input type="text" name="id" value=""><br>
<input type="password" name="passwd" value="">
<input type="submit" value="LOGIN" id=submit1 name=submit1>
</form>
とし、
[受け取り側、認証 test2.asp ]
<%
If Session("user_test") <> "1" Then
Response.Redirect "/test.asp"
Response.End()
End If
%>ここで認証を判断し、認証できなければtest.aspへもどるとし、
Dim id, passwd
id = Request.Form("id")
passwd = Request.Form("passwd")

Session("user_login") = "id"
Session("user_login") = "passwd"

IF id = "aaa" and passwd = "111" THEN
Session("user_test") = 1
Response.Write ("OK")
ELSE
Response.Write ("ちがうよ")
END IF
%>
ID、パスワードをセッション変数にいれ、各ページで認証すると言う事をやりたいのですが、うまくいきません。

どこがわるいか、お教え下さい。

※以前にも似たような質問をしているのですが、改善されずお手上げです。

A 回答 (1件)

受け手側に認証コードを記述されているのでしょうか?


送り手側ってことは無いですよね

コードの記述順序が質問の通りであるなら認証部分のコードは実行されることが無いように思います

If Session("user_test") <> "1" Then
この判断式が常に成り立ってしまうからです
Session("user_test")に何も設定されていないまたは1以外が設定されているなら test.aspに戻ってしまうためです

他のページ ログオン用のIDやパスワード使う目的でセッションに保存するなら
Session("user_login_id") = id
Session("user_login_pw") = passwd
といった具合に Sessionの引数の中身を変更し代入する右辺は変数そのものを記述しないといけないでしょう

どこまで動いているのか確認なさったほうがいいでしょう
IIS + FrontPage + MS Script debuger などで ・・・
または Response.Writeでメッセージを出すとか
    • good
    • 0
この回答へのお礼

有り難う御座います。

おっしゃるとおり設定がされていない状態が理解できました。
有り難う御座います。

また、質問させて頂きます。^^

お礼日時:2009/06/19 19:08

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