![]() |
カレッヂ |
質問者 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裏技 |