[三流君] −−> [ASPで遊ぶ、失敗する] −−> [バックナンバー一覧]
−−> No.035 パスワードの入力画面

パスワードの入力画面


本文(発行内容)


<パスワードの入力画面>

こんにちは、Ken3です。

今回は、
パスワードの入力画面
について簡単に書いてみたいと思います。

/*
 * 1.意外と簡単なパスワード入力フォーム
*/

バックナンバーのまとめで、
どんなシステムにも、ユーザーから受け取った値を処理する仕組みがあります。
HTMLのフォームから入力された値を送ってもらい、ASPでも処理します。
なんて、偉そうに書いてたけど、
ASP、ASPと騒いでいても、
HTMLフォームタグのタグで入力されたデータを
受け取って処理しているだけです。

パスワード:<INPUT TYPE="password" NAME="pass" SIZE="12">

なんて、1行、入力のための処理を作成すればOKです。
ポイントは、TYPE="password"です。

ユーザーIDとパスワードを入力させるフォームを
下記のような感じで作りました。
<html>
<head>
<title>パスワードの入力テスト</title>
</head>
<body>
<h2>パスワードの入力テスト</h2>
<br>
<FORM ACTION="test035-1.asp" METHOD="POST">
USER ID:<INPUT TYPE="text" NAME="userid" SIZE="20"><br>
パスワード:<INPUT TYPE="password" NAME="pass" SIZE="20"><br>
<INPUT TYPE="submit" VALUE="ログイン">
<INPUT TYPE="reset"  VALUE="クリア">
</FORM>

</body>
</html>

http://www.ken3.org/cgi-bin/test/test035-1.html で確認できます。

/*
 * 2.受け取りも普通通り
*/

データの受け取りも、普通に、
Request.Form("userid")
Request.Form("pass")
で受け取れます。
簡単なチェックをIf文でしてみました。

<%@LANGUAGE=VBScript%>
<html>
<head>
<title>パスワードのチェック</title>
</head>
<body>
<h2>パスワードのチェック</h2>
test035-1.asp<br>
ID=<%=Request.Form("userid")%><br>
PASS=<%=Request.Form("pass")%><br>
を受け取りました。<br>
<%  'ID=guest Pass=ken3 だったら、OKにする
  If Request.Form("userid") = "guest" And Request.Form("pass") = "ken3" Then
     Response.Write "<h2>パスワードOK、ようこそ</h2>"
  Else
     Response.Write "<font color='red'>パスワードが違います</font>"
  End If
%>

<HR>
終了です。なんか変だけど<br>

</body>
</html>

http://www.ken3.org/cgi-bin/test/test035-1.html
で、ID:guest Pass:ken3 でテストして下さい。
*また、違うパスワードを入れたりして、エラーを確認して下さい。

/*
 * 3.METHOD="GET" で送った時のメリット、デメリット
*/

フォームの送信で、もう一つのパターン、
FORM ACTION="xxxxx.asp" METHOD="GET"
があったよね、
パスワード入力をGET対応にするには、

***************************
HTML 入力側 test035-2.html
***************************
<html>
<head>
<title>パスワードの入力テスト METHOD=GETで送る</title>
</head>
<body>
<h2>パスワードの入力テスト METHOD=GETで送る</h2>
<br>
<FORM ACTION="test035-2.asp" METHOD="GET">
USER ID:<INPUT TYPE="text" NAME="userid" SIZE="20"><br>
パスワード:<INPUT TYPE="password" NAME="pass" SIZE="20"><br>
<INPUT TYPE="submit" VALUE="ログイン">
<INPUT TYPE="reset"  VALUE="クリア">
</FORM>

</body>
</html>

***********************
ASP 判断 test035-2.asp
***********************
<%@LANGUAGE=VBScript%>
<html>
<head>
<title>パスワードのチェック Request.QueryString</title>
</head>
<body>
<h2>パスワードのチェック Request.QueryString</h2>
test035-2.asp<br>
ID=<%=Request.QueryString("userid")%><br>
PASS=<%=Request.QueryString("pass")%><br>
を受け取りました。<br>
<%  'ID=guest Pass=ken3 だったら、OKにする
  If Request.QueryString("userid") = "guest" _
       And Request.QueryString("pass") = "ken3" Then
     Response.Write "<h2>パスワードOK、ようこそ</h2>"
  Else
     Response.Write "<font color='red'>パスワードが違います</font>"
  End If
%>

<HR>
終了です。なんか変だけど<br>

</body>
</html>

http://www.ken3.org/cgi-bin/test/test035-2.html で確認できます。

変更点は、
~~~~~~~~~
<FORM ACTION="test035-2.asp" METHOD="GET">
とGETで送ってるのと、
受け取りが、
Request.QueryString("項目名")になっただけなんだけど。

プログラムの変更点は少ないのですが、
テストするとわかるのですが、
http://www.ken3.org/cgi-bin/test/test035-2.asp?userid=kenzou&pass=0000
みたいに、URLにパスワードが載ってます。

 ←サンプル画面

これをセキュリティ上のデメリットと取る見かたもあるけど、
メリットもあって、
パスワードのフォーム画面で入力しなくても、
ショートカットがわりで
http://www.ken3.org/cgi-bin/test/test035-2.asp?userid=guest&pass=ken3
としておけば、メールソフトなどからワンクリックでユーザー画面に入れる
なんてこともできます。

セキュリティと使い易さのバランスをとらないといけないけど、
GETで送るのも一つの手です。

/*
 * 4.終わりの挨拶
*/

簡単なパスワード入力の説明でした。
次回は、DBにユーザー登録して、IDとパスワードのチェックを
やってみたいとおもいます。

素朴な疑問あったら、気軽に、
メール、掲示板に書き込んでくださいね。
掲示板 : http://www.ken3.org/asp/bbs-asp.html

ASP、VBScript勉強中の三流プログラマーのKen3でした。

----------------------------------
関連項目(ただのバックナンバー紹介)
----------------------------------
[No.04 フォームから値を受け取りたい]
( http://www.ken3.org/backno/backno_asp01.html#4 を参照)
では、
フォームを作成し、モードPOSTで送信
受け取りの基本は簡単で、
Request.Form("フォームの項目名")
で受け取りました。

[No.08 URLに付けたパラメータを参照(クエリ情報)]
( http://www.ken3.org/backno/backno_asp02.html#8 を参照)
では、
URLに付けた情報 test007-2.asp?ID=123 ?の後ろがパラメーターを取出す
Request.QueryString("項目名")をやりました。
満足 http://www.ken3.org/cgi-bin/test/test008-2.asp?A=1
普通 http://www.ken3.org/cgi-bin/test/test008-2.asp?A=2
不満 http://www.ken3.org/cgi-bin/test/test008-2.asp?A=3
などのよくみかけるパターンを少し解説しました。

さらに続けて、
[No.09 URLに付けたパラメータを参照(クエリ情報)]
( http://www.ken3.org/backno/backno_asp02.html#9 を参照)
では、
フォームのMETHOD="GET"で送ると、
フォームの値をURLに載せて、ASPが呼ばれてることを説明しました。

[No.22 隠し項目type="hidden"を使ってみた]
( http://www.ken3.org/backno/backno_asp05.html#22 を参照)
では、
画面に表示されない隠し項目の使い方を解説しました。
固定のパラメーターなどを隠して(表示しないで)渡す時に必要です。

フィードバック

ASP系の→[掲示板]←を覗く、質問を書き込む

評価・感想

No.035を読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る場合は下記に気軽に書いてください
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります

三流君の主なリンク先

[アクセスランキング] [サイトマップ] [リンク先・相互リンク先など]
ASPで遊ぶ、失敗する 掲示板 バックナンバー 登録と解除
三流プログラマー 業務の愚痴 掲示板 バックナンバー 登録と解除
VBAで楽しくプログラミング 掲示板 バックナンバー 登録と解除
コンビニのオモテとウラ話 掲示板 バックナンバー 登録と解除
www.ken3.org(サイト内)から Google を利用して、

Ken3の日記(weblog) -- [広告・副収入系] [プログラマー業務の愚痴] [VBA系の話題] [ASP系の話題] [コンビニ系ネタ] [その他]

その他 宣伝広告