IDパスワード認証サンプル


今回は入力フォームとID判定のスクリプト部分を分けます。

まず、入力フォームはこちら。表示サンプルはこちら

ファイル名 login.html


<html>
<head>
<title>Login</title>
</head>
<body>
<div align="center">【ID認証】 </div>
<form method="POST" action="login.asp">
<table align="center">
<tr>
<td>ID</td>
<td><input type="text" name="userid"></td>
</tr>
<tr>
<td>Password</td>
<td>
<input type="password" name="password">
</td>
</tr>
<tr>
<td colspan="2">
<div align="center">
<input type="submit" value="ログイン">
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
 

<input type="text" name="userid">
は、入力タイプがテキストで変数useridの中に入力した値が入ります。

<input type="password" name="password">
は、入力タイプがパスワードで変数passwordに入力した値が入ります。

<input type="submit" value="ログイン">
ログインボタンです。これを押すことによって、上記2つで入力した値が、渡されます。
どこに渡されるのかと言うと、

<form method="POST" action="login.asp">
の action で設定したファイルに渡されます。
methodと言うのは、その値の渡し方で、POSTとGETがあり、GETのほうは、URLの後に長々と付けて渡されます。例えば、検索エンジンなんかでもよく見る「http://www.google.co.jp/search?q=%83X%83J%83g%83%8D%83l%83b%83g&ie=Shift_JIS&hl=ja&lr=」といったのが、GETです。
POSTは目に見えない形で渡されます。GETは値の長さ制限があるのに対し、POSTのほうはありません。

次に、判定スクリプトです。

ファイル名 login.asp


<%
id = "scoutroll"
pass = "networks"
 
userid = Request.Form ("userid")
password = Request.Form ("password")
 
if id = userid and password = pass then
Response.Write "認証しました"
else
Response.Write "IDかパスワードが違います"
end if
 
%>
 

ファイル名は、login.htmlの<form method="POST" action="login.asp">の actionで指定したファイル名にしなければいけません。

id = "scoutroll"
pass = "networks"
ここでは、IDとパスワードをあらかじめ設定しています。
この値と、login.htmlで入力した値が等しければ、認証したとなるわけです。

userid = Request.Form ("userid")
password = Request.Form ("password")

login.htmlからPOSTで送られてきたものを、変数userid、passwordに代入しています。

ASPではPOSTで送られてきたものは
Request.Form ("フォームで指定した変数名")

GETで送られてきたものは
Request.QueryString("変数名")

で、取得できます。

if id = userid and password = pass then
入力された値と、あらかじめ設定した値が等しいかチェックしています。
id = userid and password = pass
変数idと変数useridが等しくて、変数passと変数passwordが等しい場合、という意味です。
「and」を指定すると、両方の条件を満たしてる場合、「or」を指定すると、どっちかが満たしている場合です。このサンプルでは、両方合っていないといけないので、andにしてあります。

そして、条件を満たしていると、
「認証しました」と表示するようにしています。