- 締切済み
パスワード認証後にリンク先を振り分けたいのですが・・。
cgi初心者のdejifuraと申します。どうか助けてください。 「パスワード認証後に、ユーザーIDごとにそれぞれのページへリンクさせたい。」 「ユーザーIDが○○(完全一致)ならば、http://www.dejifura.com/○○.htmlへリンクする」 以上の内容を行いたく、パスワード認証のCGI設置はできたのですが、それ以降がわかりません。 リンク先を振り分けるCGIを一度ダウンロードにしたのですが、私の力では振り分け条件を変更することができませんでした(設置場所がおかしいのかも)。ぴったりのCGIがダウンロードできる場所か、振り分け条件の変更方法のわかる方がいらっしゃいましたらどうか助けてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tessyu
- ベストアンサー率53% (59/110)
#1です。 先に確認なんですが、 Perlのパス設定や、パーミッション設定、ASCII転送などは問題ありませんか?
- tessyu
- ベストアンサー率53% (59/110)
■基本認証後の振り分け http://www.rescue.ne.jp/cgi/furiwake/ ↑これなんかどうですか?
補足
早速のご回答ありがとうございます。 実は、現在そのCGIの設置を試みていました。 ですが、ユーザー認証でユーザー名とパスワードを入力しても「Internal Server Error」が表示され、目的のページが表示されません。 元のプログラムはこれでした。 $USERNAME = $ENV{'REMOTE_USER'}; if ($USERNAME eq "") { &error("Error","このプログラムは基本認証が行われるディレクトリ内に設置してください。"); } print "Location: "; # ↓上から順番に処理しますので注意! (先に該当するものがあれば適用になってしまう) # もしユーザ名が FOOBARなら(完全一致) if ($USERNAME eq "FOOBAR") { print "http://www.rescue.ne.jp/cgis/furiwake/sample/1.html"; } # アクセス先URL # もしユーザ名が A から始まり h で終わるなら elsif ($USERNAME =~ /^A.*h$/) { print "http://www.rescue.ne.jp/cgis/furiwake/sample/3.html"; } # アクセス先URL # もしユーザ名が A から始まるなら(大文字小文字を区別しない場合は i オプションをつける) elsif ($USERNAME =~ /^A/i) { print "http://www.rescue.ne.jp/cgis/furiwake/sample/2.html"; } # アクセス先URL # もしユーザ名が A以外 から始まるなら elsif ($USERNAME !~ /^A/) { print "http://www.rescue.ne.jp/cgis/furiwake/sample/4.html"; } # アクセス先URL # 何も該当しない場合は else { print "http://www.rescue.ne.jp/cgis/furiwake/sample/0.htm"; } # アクセス先URL print "\n\n"; exit; sub error { #---------------------------------------------------------------- local (@msg) = @_; local ($i); print "Content-type: text/html\n\n"; print <<"EOF"; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <HTML> <HEAD> <TITLE></TITLE> <meta http-equiv="Content-Type" content="text/html; charset=x-sjis"> </HEAD> <body> <h1>$_[0]</h1> EOF foreach $i (1 .. $#msg) { print "$msg[$i]<br>\n"; } print <<"EOF"; </body></html> EOF exit; } これを、もしユーザー名が○○なら、http://www.▲▲.comへ、と言う内容にするにはどうしたらよいのでしょう? # もしユーザ名が ○○なら(完全一致) if ($USERNAME eq "○○") { print "http://www.▲▲.com"; } # アクセス先URL と変えるだけではだめですか?
- rubyeye
- ベストアンサー率47% (395/825)
どのCGI使っているか判らないし……。 ユーザーIDが○○と完全一致ならば、目標のページへ 違えば、HOMEに逆戻り というのは、どのユーザー認証でもある基本的機能なので、リンク先を振り分けるCGIってなに?な状態です。 完全一致以外は入口のページに戻すとかそういうものではないのですか? 間違ったら適当な場所に飛んでもらいたいのでしょうか? 設置場所がおかしいかもと書かれても、お使いのサーバーも判りませんし……。 答えられる人もいるかもしれませんが、ちょっと答えにくいですので、補足お願いします。
補足
意味合いとしては、「ユーザーごとに別々のページへ飛んでもらいたい」ということなんですが・・。 普通のユーザー認証だと、どのユーザーも同じページへ飛びますよね? うまく表現できなくて申し訳しわけありません。 早速の回答ありがとうございました。
お礼
親切にアドバイスいただき、ありがとうございます。 やはり自分では良くわからないので、外注することにしました。 どうもお騒がせ致しました。