ユーザIDとパスワードを入力後、ユーザごとに異なるページにジャンプするようなCGIを作成したいと思ってます。プラットホームはApachでPerl言語を使用したいと思ってます。サンプルプログラムや方法、アイデアがございましたら是非ご教授ください。
ちなみに、Apachでユーザを作成することは許されています。(作成せずに済むことに越したことはないのですが・・・)

このQ&Aに関連する最新のQ&A

A 回答 (4件)

先程の回答では適当でなかった様な気がしますのでもう一度。



>REMOTE_USERとはどのような認証方式をクリアしたユーザなんですか?

.htaccessを用いて認証させるのならばそのときのユーザーが該当します。

>UNIXで作成したユーザでしょうか?

前回の方を御覧頂ければ判りますがUNIXで作成したユーザーでも独自に作成したユーザーでも使用できます。

>.htaccessファイルによる認証をクリアしたユーザはREMOTE_USERにセットされるのでしょうか?

されます。

以上、補足でした。
    • good
    • 0
この回答へのお礼

ありがとうございます。REMOTE_USERって便利ですね。
早速、テストサイトを作ってみたいと思います。

お礼日時:2001/08/07 14:55

お礼読ませて頂きました。


REMOTE_USERとはApacheのBasic認証を用いて認証させた場合に設定される環境変数です。
この環境変数はCGI内部で自由に参照することが出来ます。
尚、認証時に使用されるユーザーIDとパスワードは特定のファイルを指定しなければ当該ホストのユーザー情報が使用されますが、ファイルを指定して独自に作ったユーザー情報(ユーザーIDとパスワードの組み合わせ)を使用することも出来ます。
参考URLに.htaccessの利用法が書かれたサイトを記載しておきましたので詳しくは「パスワードによるユーザー認証のかけ方」の項目をご覧下さい。

参考URL:http://www.mikeneko.ne.jp/~lab/cgi/htaccess/
    • good
    • 0

補足です。


REMOTE_USERと「.html」等拡張子をCGI内部で組み合わせて飛ばしてやれば簡単にユーザごとのページへ送り込むことが出来ますね。
勿論その場合保護されたディレクトリー配下に各ユーザー名を持つhtmlファイルをユーザー数分だけ置いておかなければなりませんが。
    • good
    • 0
この回答へのお礼

ありがとうございました。
REMOTE_USERとはどのような認証方式をクリアしたユーザなんですか?UNIXで作成したユーザでしょうか?
.htaccessファイルによる認証をクリアしたユーザはREMOTE_USERにセットされるのでしょうか?

お礼日時:2001/08/07 13:45

ユーザー認証を使用するのであれば話は簡単です。


保護されたディレクトリー配下に直接参照させるCGIを置いておきます。
そのCGIにアクセスするには当然ユーザーIDとパスワードが必要になります。
無事認証を通ってきたユーザーのユーザーIDはCGIのなかで環境変数REMOTE_USERで参照することが可能ですから、CGI内部で場合分けして該当するページへ飛ばしてやれば良いです。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPerl5.8とPerl5.6は共存可能でしょうか?

WindowsでActivePerlを使っています。現在Perl5.8を入れていますが
後からPerl5.6を入れて、Perl5.6を優先的に使いたいのですが
Perl5.8とPerl5.6の共存は可能でしょうか?

Aベストアンサー

おいらのやり方  基本的には#1さんのと同じですが
E:ドライブにApacheなども入れているので
Perl5.6を e:\usr\binに、Perl5.8をE:\usr\local\bin にいれます。
ApacheとPerlを同じドライブに入れれば .cgiとして使うときにshebang文を
#! /usr/bin/perl と記述することが出来ます。

1.Perlのインストール前に e:\usr その下に\localというフォルダを作っておきます。
2. Perl5.8インストール時 Choose Setup Typeのところで Customを選びます
3.次の画面で [Browse ]ボタンを押して e:\usr\localを指定します。<=e:\usr\local\binでは有りません
4. NEXTを押してインストールを続けます

次に5.6のインストール
5. Perl5.8と同じようにしてpathを今度は e:\usr を指定します

両方インストールが終わったらOSの環境変数pathで
perl5.6のあるe:\usr\binを5.8のあるe:\usr\local\binよりも上位にします
pathの設定方法は
http://www.gihyo.co.jp/book/2000/179111/download/index1.html を参考に
;で複数のエントリーを記述している場合、例えばpathの記述が
c:\windows;c:\windows\command;e:\usr\local\bin;e:\usr\bin なら
c:\windows;c:\windows\command;e:\usr\bin;e:\usr\local\bin にするか#1さんの言う様にe:\usr\local\binを消します

WIN98などで autoexec.batに
PATH C:\windows;C:\windows\command
PATH %PATH%;e:\usr\local\bin
PATH %PATH%;e:\usr\bin   <=この場合はこの行を上に変更
http://www.hir-net.com/soft/doc/install.html
 (WIN95/98では再起動後に有効になります)

うまくいったか確認はコマンドラインで
c:\hoge> perl -v (perl -V だともっと詳しい情報が表示される)

おいらのやり方  基本的には#1さんのと同じですが
E:ドライブにApacheなども入れているので
Perl5.6を e:\usr\binに、Perl5.8をE:\usr\local\bin にいれます。
ApacheとPerlを同じドライブに入れれば .cgiとして使うときにshebang文を
#! /usr/bin/perl と記述することが出来ます。

1.Perlのインストール前に e:\usr その下に\localというフォルダを作っておきます。
2. Perl5.8インストール時 Choose Setup Typeのところで Customを選びます
3.次の画面で [Browse ]ボタンを押して e:\usr\loca...続きを読む

Qperlとmod_perlの併用について

同一Webサーバ上で通常のperlとmod_perlを併用することは
可能でしょうか?

バーチャルホストを使用してWebページ用のディレクトリは
通常のperl仕様のWebページとmod_perl仕様のWebページと分けて
構わないのですが・・・

よろしくお願いします。

Aベストアンサー

Perlが必須かmod_perlが必須か、ということではなく、mod_perlを使うか使わないか、という差になるはずです。
いずれにしても、Perlは必須なので。

2つのWebページの片方は、Perlで出力するWebページ(拡張子 .cgi)で、もう片方はmod_perl仕様で出力するWebページ(拡張子 .mcgi)とすれば、先の設定でいけるんですけど。
※.mgciを利用するなら mime.types の設定も必要か

設定については、検索するか本を購入。
っていうか、自分で調べたり、実際に試したりしてないのかな?

QHTML(AJAX)-perl -DB(MySQL)-perl -HTML(AJAX)のデータの流れについて。

こんにちわ。
早速ですがよろしくお願いします。

タイトルの通り、画面入力のデータAをperlに投げてAを元にperl側でDBデータ取得(A')、A'を元の入力画面で処理結果として出力する事を考えています。
HTML(AJAX)-perl -DB(MySQL)-perl
↑ここまではできたのですが、最後の
perl -HTML(AJAX)
が出来ず、A'を入力画面に返す方法が分かりません。

ちなみに処理結果(A')をHTML側でYahoo! User Interfaceを使用してテーブル処理する予定です。

お恥ずかしながらプログラミングに関しての知識が乏しくて恐縮なのですが、どうぞよろしくお願い致します。

Aベストアンサー

Yahoo! User Interfaceで何をされるのかわかりませんが,
入力されたものを自動で処理し入力画面に出力させるだけでしたら,

use strict;
use CGI;
use CGI::Ajax;

my $cgi = new CGI;
my $pjx = new CGI::Ajax( 'exported_func' => \&perl_func );

print $pjx->build_html( $cgi, \&Show_HTML);

sub perl_func {
my $input = shift;
# DBに接続して,何か処理をする
my $output = "処理結果を代入";
return( $output );
}

sub Show_HTML {
my $html = <<EOHTML;
<HTML>
<BODY>
Enter something:
<input type="text" name="val1" id="val1"
onkeyup="exported_func( ['val1'], ['resultdiv'] );">
<br>
<div id="resultdiv"></div>
</BODY>
</HTML>
EOHTML
return $html;
}

で出てきます。
JavaScriptを自分で一行も書かないけど,Ajaxができてしまうという優れものです。

Yahoo! User Interfaceで何をされるのかわかりませんが,
入力されたものを自動で処理し入力画面に出力させるだけでしたら,

use strict;
use CGI;
use CGI::Ajax;

my $cgi = new CGI;
my $pjx = new CGI::Ajax( 'exported_func' => \&perl_func );

print $pjx->build_html( $cgi, \&Show_HTML);

sub perl_func {
my $input = shift;
# DBに接続して,何か処理をする
my $output = "処理結果を代入";
return( $output );
}

sub Show_HTML {
my $h...続きを読む

QPerlで検索エンジン作成は可能!?

Perlを使ってLYCOSのような
検索エンジンを作成できますか?
やはりPerlではなくほかの言語で
作成するのでしょうか?

Aベストアンサー

Perlでも十分可能ですよ。
しかし、DBを使用したいとあらば、ASPやPHPの方が向いていると思います。
軽さを求めるならPHP…でしょうか?
そのあたりはスクリプトの組み方や使用している関数にもよると思いますが。

もしどうしてもPerlで作成したいのでしたら、
Perlで作られているフリーの検索エンジンをDLして、
勉強してみるのも良いと思いますよ。

QPerlスクリプトでメールを作成して送信

できるでしょうか?
ニフティプロバイダを使ってますがCGI制限があり
SMTPはできないそうです

Aベストアンサー

Perlスクリプトでも不可能ではないでしょうが、
メールの仕組みを理解していなければ無理でしょう。
(それ以外の問題もあります)

この場合、sendmailというのを利用するのが簡単なのですが、
niftyではsendmailが利用出来ません。
CGI制限の関係で無理かも知れないですね。


おすすめ情報