![]() |
| カレッヂ |
質問者 YaMa3
投稿日 6/7(土) 16:32:00
[削除] (返信・回答が付いた後にこの質問の削除はできません)
こんにちは。YaMaと申します。お願いします。
アクセス制限のCGIですが、
KENT Webさんのフリーの「COSMO GATE-EX」を使っています。
その場合のログについてです。現状では、
yama<>2003/06/07(Sat) 15:50:52<>5<><>219.111.xxx.xxx<>1054123111<><><>
のようになってます。何を言いたいかというと、
同一ユーザーが、アクセスした場合は、
上書きされてしまいます。
希望としては、
yama<>2003/06/05(Thu) 15:50:52<>4<><>219.111.xxx.xxx<>1054123111<><><>
yama<>2003/06/07(Sat) 15:50:52<>5<><>219.222.xxx.xxx<>1054123122<><><>
という具合に、上書きされずに、なって欲しいというのと、
もう一つ、IPアドレスだけでなく、
s123456.ap.plala.or.jp
というようなホスト名も、追加して記されると、
どこからアクセスしたのか大変参考になるのですが、
このような相談は、無理でしょうか?
KENTさんのサポートは、改造の質問は、受け付けていませんです。
(ですので、質問していません。)
1〜2ヶ月前から、どうにかならないだろうかと、考えています。
どうぞ、お願いします。m(_ _)m
CGIは、以下のようになっています。(全てを書かなければ、いけないと思いますが、
長くなるので、以下の部分だけにしました。)
#--------------------#
# アクセス履歴処理 #
#--------------------#
sub record {
local($rid,$rdate,$rcnt,$rmemo,$raddr,$rtime,$rname,$remail);
# ロック開始
if ($lockkey) { &lock; }
# 記録ファイルを開く
open(REC,"$targetdir\/$reclog") || &error("Open Error : $reclog");
@lines = <REC>;
close(REC);
# IDのマッチング
local($flag) = 0;
@new = ();
foreach $line (@lines) {
($rid,$rdate,$rcnt,$rmemo,$raddr,$rtime,$rname,$remail) = split(/<>/,$line);
if ($rid eq "$id") {
$flag = 1;
$rcnt++;
$line = "$rid<>$date<>$rcnt<>$rmemo<>$ENV{'REMOTE_ADDR'}<>$times<>$rname<>$remail<>\n";
}
push(@new,$line);
}
if ($flag == 1) {
# 履歴を上書き
open(REC,">$targetdir\/$reclog") || &error("Can't write $reclog");
print REC @new;
} else {
# 新規ログを追加
open(REC,">>$targetdir\/$reclog") || &error("Can't write $reclog");
print REC "$id<>$date<>1<><>$ENV{'REMOTE_ADDR'}<>$times<><><>\n";
close(REC);
}
# ロック解除
if ($lockkey) { &unlock; }
}
プロバイダ参照:http://homepage.nifty.com/ |
返信(回答)する
| Web裏技 |