記事No | : 5056 |
投稿日 | : 2008/12/10(Wed) 02:37:43 |
タイトル | : PasswordManagerのログ集計の表示に関しまして |
ID情報 | : ssnk |
投稿者 | : ssnk |
URL | : http://snake.ciao.jp/pwmgr/ |
いつもスクリプトを利用させていただきありがとうございます。
この度サークルでウェブサイトを作りことになり、PasswordManagerを導入させていただきました。
ログ集計機能で、誰が観覧したかを把握するためです。
設置は問題なくいけたのですが、少々解決できない壁にぶつかってしまいました。
何卒お力添えをいただければと思い質問をさせていただきます。
ログ集計表示の際に、ユーザーIDではなく登録者名(名前)で表示、もしくはテーブルに一列追加し登録者名(名前)を表示させたいのですが、こんなことは可能でしょうか。
複数の管理者で観覧履歴を確認するため、その方が便利なんです。
ここ2週間ほどperlの本とにらめっこをしていたのですが、私の現状のスキルではまだカスタマイズができません。
何かアドバイスだけでも結構ですので、どなたかよろしくお願いいたします。
記事No | : 5057 |
投稿日 | : 2008/12/10(Wed) 11:50:49 |
タイトル | : Re: PasswordManagerのログ集計の表示に関しまして |
ID情報 | : pachira |
投稿者 | : pachira |
URL | : http://www5e.biglobe.ne.jp/~pachira/ |
> いつもスクリプトを利用させていただきありがとうございます。
>
> この度サークルでウェブサイトを作りことになり、PasswordManagerを導入させていただきました。
> ログ集計機能で、誰が観覧したかを把握するためです。
>
> 設置は問題なくいけたのですが、少々解決できない壁にぶつかってしまいました。
> 何卒お力添えをいただければと思い質問をさせていただきます。
>
> ログ集計表示の際に、ユーザーIDではなく登録者名(名前)で表示、もしくはテーブルに一列追加し登録者名(名前)を表示させたいのですが、こんなことは可能でしょうか。
>
> 複数の管理者で観覧履歴を確認するため、その方が便利なんです。
> ここ2週間ほどperlの本とにらめっこをしていたのですが、私の現状のスキルではまだカスタマイズができません。
> 何かアドバイスだけでも結構ですので、どなたかよろしくお願いいたします。
IDと名前は別ファイルに保存されますので困難かと思います。
特に、pwlog.cgiは「 $ENV{'REMOTE_USER'} 」にてIDを取っているだけですから。
BASIC認証にて”名前”をIDと同時に受け取るのは無理かと。
# 私のスキルもたいした事はありませんので、可能であれば申し訳ないです^^;
記事No | : 5058 |
投稿日 | : 2008/12/10(Wed) 17:33:55 |
タイトル | : Re^2: PasswordManagerのログ集計の表示に関しまして |
ID情報 | : teketen |
投稿者 | : てけてん |
メンバーの人数は、どれくらいなんでしょうか。
あまり多い人数(500人以上とか)ならオススメしませんが、そんなにメンバーが多くないならば、以下の方法でどうでしょうか?
但し、改造は自己責任でお願いします。
改造前には、スクリプトやログのバックアップを必ずおとり下さい。
動作がおかしくなった場合は、元に戻して下さい。
PasswordManager v2.23
pwlog.cgi
43行目付近
unshift(@data,"$ENV{'REMOTE_USER'}<>$date<>$host<>$agent<>\n");
を
unshift(@data,"$ENV{'REMOTE_USER'} / $name<>$date<>$host<>$agent<>\n");
に修正、34行目付近
# ブラウザ情報
$agent = $ENV{'HTTP_USER_AGENT'};
の前の行に
open(MEMBER,"$memfile") or error("Open Error: $memfile");
my $name;
while(<MEMBER>) {
$name = '';
(my $id,$name) = (split(/<>/))[0,1];
last if($ENV{'REMOTE_USER'} eq $id);
}
close(MEMBER);
を挿入して下さい。
admin.cgi
596行目付近
print "<tr><td class=\"r\"><font size=\"-1\">$_</font></td>";
を
print "<tr><td class=\"r\"><font size=\"-1\">$_ / $name{$_}</font></td>";
に変更、577行目付近
local($id,$date,$host,$agent) = split(/<>/);
の次の行に
($id,my $name) = split(/\s\/\s/,$id);
$name{$id} = $name unless($name{$id});
を挿入、575行目付近
open(IN,"$axsfile");
の次の行に
my %name = ();
を追加して下さい。
アクセスログのIDの部分は、「ログインID / 登録名」で保存及び表示されます。
改造した前のログに保存されているデータには、登録名は保存されません(今までどおり、IDのみ)。
改造後にログインしたIDは、登録名も保存・表示出来るようになります。
以上です。
記事No | : 5060 |
投稿日 | : 2008/12/10(Wed) 22:10:01 |
タイトル | : Re^3: PasswordManagerのログ集計の表示に関しまして |
ID情報 | : ssnk |
投稿者 | : ssnk |
URL | : http://snake.ciao.jp/pwmgr/ |
pachira様
アドバイスありがとうございます。
なんとかやってみます。
てけてん様
ご丁寧な解説をいただき感激です。
本当にありがとうございます!
とりいそぎご指導の内容で試してみようと思います。
心より感謝申し上げます。
記事No | : 5059 |
投稿日 | : 2008/12/10(Wed) 17:40:27 |
タイトル | : Re: PasswordManagerのログ集計の表示に関しまして |
ID情報 | : Fuyuki |
投稿者 | : BAL |
URL | : http://f43.aaa.livedoor.jp/~sumure/ |
> いつもスクリプトを利用させていただきありがとうございます。
>
> この度サークルでウェブサイトを作りことになり、PasswordManagerを導入させていただきました。
> ログ集計機能で、誰が観覧したかを把握するためです。
>
> 設置は問題なくいけたのですが、少々解決できない壁にぶつかってしまいました。
> 何卒お力添えをいただければと思い質問をさせていただきます。
>
> ログ集計表示の際に、ユーザーIDではなく登録者名(名前)で表示、もしくはテーブルに一列追加し登録者名(名前)を表示させたいのですが、こんなことは可能でしょうか。
>
> 複数の管理者で観覧履歴を確認するため、その方が便利なんです。
> ここ2週間ほどperlの本とにらめっこをしていたのですが、私の現状のスキルではまだカスタマイズができません。
> 何かアドバイスだけでも結構ですので、どなたかよろしくお願いいたします。
こんなものでどうでしょうか。
●pwlog.cgi
# ロック開始
&lock if ($lockkey);
#▼ここから▼
open(IN,"$memfile") || &error("Open Error: $memfile");
while (<IN>) {
($id,$nam) = split(/<>/);
if ($ENV{'REMOTE_USER'} eq $id) { $my_name = $nam; last;}
}
close(IN);
#▲ここまで追加▲
# ログファイルの読み込み
open(IN,"$axsfile") || &error("Open Error: $axsfile");
@data = <IN>;
close(IN);
# ブラウザ情報
$agent = $ENV{'HTTP_USER_AGENT'};
$agent =~ s/&/&/g;
$agent =~ s/</</g;
$agent =~ s/>/>/g;
$agent =~ s/"/"/g;
# ログ調整
while ($log_max <= @data) { pop(@data); }
unshift(@data,"$ENV{'REMOTE_USER'}<>$date<>$host<>$agent<>$my_name<>\n"); ## ★修正
●admin.cgi
# ログ集計の場合
} else {
print "<p>▼<b>ログ集計</b>\n";
print "<p><table border=\"1\" cellspacing=\"0\" cellpadding=\"2\">\n";
print "<tr><th class=\"l\"><font size=\"-1\">ユーザID</font></th>";
print "<th class=\"l\"><font size=\"-1\">アクセス数</font></th></tr>\n";
# データ集計
local(%count);
open(IN,"$axsfile");
while (<IN>) {
local($id,$date,$host,$agent,$my_name) = split(/<>/); ## ★修正
$count{$my_name}++; ## ★修正
}
close(IN);
記事No | : 5061 |
投稿日 | : 2008/12/10(Wed) 22:11:48 |
タイトル | : Re^2: PasswordManagerのログ集計の表示に関しまして |
ID情報 | : ssnk |
投稿者 | : ssnk |
URL | : http://snake.ciao.jp/pwmgr/ |
BAL様
本当にありがとうございます。
こんなにご丁寧にお教えいただけるとは思っていませんでした。
感激です!
心より感謝申し上げます。
さっそく実験させていただきます。
重ねて御礼申し上げます。