KENT-WEB サポートコーナー 過去ログ [ 0126 ]


記事No: 5056
投稿日: 2008/12/10(Wed) 02:37:43
タイトルPasswordManagerのログ集計の表示に関しまして
ID情報: ssnk
投稿者: ssnk
URLhttp://snake.ciao.jp/pwmgr/

いつもスクリプトを利用させていただきありがとうございます。

この度サークルでウェブサイトを作りことになり、PasswordManagerを導入させていただきました。
ログ集計機能で、誰が観覧したかを把握するためです。

設置は問題なくいけたのですが、少々解決できない壁にぶつかってしまいました。
何卒お力添えをいただければと思い質問をさせていただきます。

ログ集計表示の際に、ユーザーIDではなく登録者名(名前)で表示、もしくはテーブルに一列追加し登録者名(名前)を表示させたいのですが、こんなことは可能でしょうか。

複数の管理者で観覧履歴を確認するため、その方が便利なんです。
ここ2週間ほどperlの本とにらめっこをしていたのですが、私の現状のスキルではまだカスタマイズができません。
何かアドバイスだけでも結構ですので、どなたかよろしくお願いいたします。


記事No: 5057
投稿日: 2008/12/10(Wed) 11:50:49
タイトルRe: PasswordManagerのログ集計の表示に関しまして
ID情報: pachira
投稿者: pachira
URLhttp://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
URLhttp://snake.ciao.jp/pwmgr/

pachira様
アドバイスありがとうございます。
なんとかやってみます。


てけてん様
ご丁寧な解説をいただき感激です。
本当にありがとうございます!
とりいそぎご指導の内容で試してみようと思います。
心より感謝申し上げます。


記事No: 5059
投稿日: 2008/12/10(Wed) 17:40:27
タイトルRe: PasswordManagerのログ集計の表示に関しまして
ID情報: Fuyuki
投稿者: BAL
URLhttp://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/&/&amp;/g;
$agent =~ s/</&lt;/g;
$agent =~ s/>/&gt;/g;
$agent =~ s/"/&quot;/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
URLhttp://snake.ciao.jp/pwmgr/

BAL様

本当にありがとうございます。
こんなにご丁寧にお教えいただけるとは思っていませんでした。
感激です!
心より感謝申し上げます。

さっそく実験させていただきます。
重ねて御礼申し上げます。


[検索ページ]