テキストファイルにかかれているパスワードと、画面から入力されたパスワードと一致しているかをチェックするには?
[上に]
[前に]
[次に]
まりこ
1999/11/19(金) 20:23:58
テキストファイルにパスワードとユーザーIDを書いておいて、
それをHTML画面の入力ボックスの入力値と比較させたいのですが、
どうすればいいのですか?
テキストファイルの中は、ユーザー名、パスワードの順で
tomoe,ABCD
mayumi,6666
というふうに書いてあります。
Nobu3
1999/11/19(金) 21:34:07
CGIで、かつPerlでの話なら、フォームからの情報は
http://www.tohoho-web.com/cgi-bin/wwwperl.txt
が、参考になるでしょう。
あとは、
open(IN, "./data.txt");
while($line = <IN>){
($name,$pass)=split(',',$line);
if($FORM{'name'} eq $name && $FORM{'pass'} eq $pass){
$flg=1;
last;
}
}
close(IN);
if($flg){print "認証OK!"}
なかんじでいいのかなぁ。
前提は
「名前」を入れるフォームは「name」
「パスワード」は「pass」
そのテキストファイルは「data.txt」で、同じディレクトリにある。
ということ。
ちなみにJavaScriptでは、このような方法だとパスワードを「すでに読んでいる」必要がある(と思う)のでやめときましょう。
ふじ
1999/11/19(金) 21:51:50
> ($name,$pass)=split(',',$line);
その前に
chop $line;
しないと。
#改行文字が $pass にくっついているので判定失敗しちゃう。
Nobu3
1999/11/19(金) 23:15:08
あぅっ!
そうですね。
試してみれば、わかったはずですね・・・。
すいません。
ちなみに、「chop $line;」は「$line =~ s/[\r\n]+$//g;」みたいなことをやるみたいです。
Nobu3
1999/11/19(金) 23:38:12
「$line =~ s/[\r\n]+$//g;」の最後の「g」は必要ないですね。1回だけだし。
あと過去ログ見たら、これって「chomp $line;」の事かも・・・?
B-Cus
1999/11/20(土) 07:05:07
> これって「chomp $line;」の事かも・・・?
です。chop は s/.$//。
[上に]
[前に]
[次に]