10.ログイン制限
ページを表示する前に、名前と暗証番号を入力してから
ページを表示できる様にしたいと思います。
前回までに作ったソースを入力画面にして、認証したら別のページを表示する。
ってな感じでやってみよう~♪
今までのHTMLサブルーチンを使って変更していけばいいんだけど
何てサブルーチン名にしようかな~・・・?
GO にするかっ!
んで、どうすんだ?( ̄- ̄*)ジィ
入力画面のページ表示 → フォームから名前と暗証番号を送信
→ デコード処理して送られてくる$nameと$passの両方をチェック
んで、名前と暗証番号を予め登録しといて
一致すればHTMLを表示し、違っていたらエラー表示画面を表示
こんな感じでやってみるっす。
まずは、認証するサブルーチンを作ってみようかと思います。
駄目だっ!うまく動かない。ガ━━(= ̄□ ̄=)━━ン!!
現在のソース : cgibessou_page010-1.txt
ini.cgi : ini.txt
できた~~~っ!ちょっと苦労した。^^;
フォームで hidden を使う方法をすっかり忘れてて
条件分岐とかフラグ立てたり、サブルーチンの中に retuen 入れたりしてたんだけど。(^_^; アハハ…
↓もしフォームから送信された値が無ければ、サブルーチン GO を呼び出し
if($FORM{'munba'} eq ''){&GO;}
↓サブルーチン GO 内に
<input type="hidden" name="munba" value="go">
を記述し
↓もしhiddenで送信された値が go なら、認証サブルーチン go_in を呼び出し、
if($FORM{'munba'} eq 'go'){&go_in;}
↓TOPページのフォームから入力された値 name と pass を判別して
if($name eq "ムンバ" && $pass eq "123")
合致していればサブルーチン HTML を呼び出し、メインHTMLを表示する。
合致して無ければメッセージHTMLを表示する。
↑sub decodeに、このテキストエリアでは正常に表示されてないスクリプトなどがありますので
コピペして使うなら↓の「現在のソース」をコピペして下さい。
あと、タグなどをスカラー変数に代入して使用し始めたので↓の ini.cgi を参考にして下さい。
現在のソース : cgibessou_page010-2.txt
ini.cgi : ini.txt
何か、それらしくなってきたよね!www
で、次の目標は、それぞれログインする人の「名前」と「暗証番号」を予め記録しといて・・・
今回はweb上で「名前」「暗証番号」を新規登録するのではなく
予め登録している「名前」「暗証番号」を、web上で認証してログインする方法でやりたいんす。
んで、配列か連想配列を使ってやってみま~す。
次回は、別ファイルまたはサブルーチン内に
「名前」と「暗証番号」をいくつか?登録しておいて
それぞれを認証できるスクリプトを作りたいと思います。