- 締切済み
個別パスワード入力⇒個別ページへ
よくメンバーページなどでパスワード制限プログラムがありますが、 探してもほとんどのものが入室後は同じページです。 個別に違うパスワードを教えても、 制限をかけているページが同じディレクトリになってしまいます。 個別に そこで個別パスワードごとに個別ページを表示(振り分け)たいです。 Aさん=PASS:001=001.htmlのみ入室可 Bさん=PASS:002=002.htmlのみ入室可 Cさん=PASS:003=003.htmlのみ入室可 こういったプログラムはありますでしょうか><??
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- taporu
- ベストアンサー率44% (46/104)
***.cgiに問題があると思います 【***.cgi】 #!/usr/bin/perl if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buf, $ENV{'CONTENT_LENGTH'}); } else { $buf = $ENV{'QUERY_STRING'}; } undef(%in); my @buf = split(/&/, $buf); foreach (@buf) { my ($abc, $val) = split(/=/); $val =~ tr/+/ /; $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg; # エスケープ $val =~ s/&/&/g; $val =~ s/"/"/g; $val =~ s/</</g; $val =~ s/>/>/g; $in{$abc} = $val; } print "Content-type: text/html\n\n"; if($in{'pass'} eq "001") { print "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=./001.html\">\n"; } elsif($in{'pass'} eq "002") { print "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=./002.html\">\n"; } elsif($in{'pass'} eq "003") { print "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=./003.html\">\n"; } else { print "ERROR:パスワードが違います"; } これで動作すると思います
- 参考URL:
- http://kent-web.com/perl/
- leap_day
- ベストアンサー率60% (338/561)
こんにちは CGIでやるのであれば・・・ 【パスワード入力html】 <form action="***.cgi" method="post"> <input tpye="password" size="20" name="pass"><br> <input type="submit" value="ログイン"> </form> 【***.cgi】 if($in{'pass'} eq "001") { print "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=./001.html\">\n"; } if($in{'pass'} eq "002") { print "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=./002.html\">\n"; } if($in{'pass'} eq "003") { print "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=./003.html\">\n"; } javascriptでやるのであれば・・・ 【パスワード入力html】 <script language="javascript"> <!-- function check() { obj = document.form.pass; objs = document.getElementById("form"); objs.action = ""; if(obj.value == "001") objs.action = "001.html"; if(obj.value == "002") objs.action = "002.html"; if(obj.value == "003") objs.action = "003.html"; } //--> </script> <form action="" method="post" name="form" id="form"> <input tpye="password" size="20" name="pass"><br> <input type="submit" value="ログイン" onClick="check()"> </form> でできると思いますよ(^^)
補足
ありがとうございます!! 早速試しましたが、cgiの場合は認識されませんでした… 記述する場所が悪いのかも知れませんが、 どこに記述してよいのか分かりません; ちなみに、kent-webのbasic認証版を利用しています。 html等での記述ですとセキュリティ上少し怖いので、 kent-webさんので改造して利用したいと思っています。。 kentさんのでも分かりますでしょうか><_?