(現在 過去ログ1 を表示中)

HOME HELP 新着記事 トピック表示 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■6541 / inTopicNo.1)  ReverseAccessについて。
  
□投稿者/ Marvi -(2003/01/25(Sat) 18:06:42)
    お世話になっております。
    逆アクセスランキングについて質問です。

    ディフォルトの状態ではset.cgiの$daysの値を超える現在ランキングのログがフォーマットされますが、これを$courの様に「○日間過ぎたら古いログを削除する」と言う設定に変える事は出来ますでしょうか?
    つまり「現在のランキング」には「最新○日間のランキング」と言う感じにしたいのです。

    例:23日には1/21〜1/23の3日間のランキング。24日になったら1/22〜1/24の3日間のランキングで23日のログは削除(もしくは過去ログへ)

    この仕様にする為に過去ログ機能が使えなくなっても構わないので、$courの部分を$daysに用いて改造できるならヒントだけでも頂けたらと思います。

    過去ログには似たような内容が無かったので書き込みましたが、既出でしたら申し訳ありません。
    個人的な希望の改造の為、お手間を取らせるような内容になるならレスなしで構いません。
    宜しくお願い致します。<(__)>
引用返信 [メール受信/ON] 削除キー/
■6548 / inTopicNo.2)  Re[1]: ReverseAccessについて。
□投稿者/ りゅういち -(2003/01/25(Sat) 21:29:14)
http://www.cj-c.com/
    No6541に返信(Marviさんの記事)
    > つまり「現在のランキング」には「最新○日間のランキング」と言う感じにしたいのです。
    > 例:23日には1/21〜1/23の3日間のランキング。24日になったら1/22〜1/24の3日間のランキングで23日のログは削除(もしくは過去ログへ)
    > この仕様にする為に過去ログ機能が使えなくなっても構わないので、$courの部分を$daysに用いて改造できるならヒントだけでも頂けたらと思います。

    これは難しいですね。ReverseAccessは日付単位でログを取得しているわけではなく、
    URL単位でログを取得してます。ので、そのURLのカウントのどこからがいつのか、
    ということは分かりません。
    ただ「一日づつ過去ログに移行するようにして、現ログから最新過去ログ2つ目までを
    足して表示する」とすればできなくもありません。でも、結構大変です。
    これは何とか自分でおこなってみてくださいm(_ _)m
引用返信 [メール受信/OFF] 削除キー/
■6553 / inTopicNo.3)  Re[2]: ReverseAccessについて。
□投稿者/ Marvi -(2003/01/26(Sun) 17:41:20)
    レスありがとうございます。

    > ただ「一日づつ過去ログに移行するようにして、現ログから最新過去ログ2つ目までを
    > 足して表示する」とすればできなくもありません。でも、結構大変です。

    思いついたのですが難しそうだったので、他に方法があるかな・・と思いましたが。
    頑張ってやってみます。ありがとうございます。

    逆にjavascriptで表示する内容を1つ前の過去ログにする・・なんて事は可能ですか?
    これなら$daysを1にすれば一番直近なランキングを表示出来ますよね。
    $Rankhに入る値を前のログにする方法はありますか?
引用返信 [メール受信/OFF] 削除キー/
■6554 / inTopicNo.4)  Re[3]: ReverseAccessについて。
□投稿者/ Marvi -(2003/01/26(Sun) 18:07:19)
    連続ですいません。
    今スクリプト見ながらりゅういちさんの書き込みを思い出しつつ、ふと思ったので。

    >>ただ「一日づつ過去ログに移行するようにして、現ログから最新過去ログ2つ目までを
    >>足して表示する」とすればできなくもありません。でも、結構大変です。

    ↑これは自分が3日間にしたためですが2日間にして考えてみました。
    例えば$daysを「1」にして$courも「1」にします。
    すると$logに入る値と$time.bakに入る値の2つだけ足すようにすればどうでしょう?
    foreachで値を取り出し足せば出来そうな感じなのですが・・
    これ以上が思いつきません。
    もし出来そうならご教授下さい。
引用返信 [メール受信/OFF] 削除キー/
■6560 / inTopicNo.5)  Re[4]: ReverseAccessについて。
□投稿者/ りゅういち -(2003/01/26(Sun) 21:52:39)
http://www.cj-c.com/
    No6554に返信(Marviさんの記事)
    > ↑これは自分が3日間にしたためですが2日間にして考えてみました。
    > 例えば$daysを「1」にして$courも「1」にします。
    > すると$logに入る値と$time.bakに入る値の2つだけ足すようにすればどうでしょう?
    > foreachで値を取り出し足せば出来そうな感じなのですが・・
    > これ以上が思いつきません。

    2日間でも3日間でも方法はほぼ同じです。
    $saveログ内容を必要な分読み込んで そこにある数字.bak を読み込んで、
    foreachで現在ログを回して、それと同じURLがあるかどうかを xxx.bak のログを
    まわして確認する(ここ負荷がかなりかかるかも)。
    これを考えると、過去ログになるときにそのひとつ前の過去ログと計算したものを、
    何か別のログに書き出して、ランキングではそのログを表示する、
    という方法がいいかもしれませんね。
    (書くことは簡単ですが、プログラムにするのは難しそうですね(^^;)
引用返信 [メール受信/OFF] 削除キー/
■6572 / inTopicNo.6)  Re[5]: ReverseAccessについて。
□投稿者/ Marvi -(2003/01/28(Tue) 12:43:51)
    レスありがとうございました。

    No6560に返信(りゅういちさんの記事)
    > 2日間でも3日間でも方法はほぼ同じです。
    > $saveログ内容を必要な分読み込んで そこにある数字.bak を読み込んで、
    > foreachで現在ログを回して、それと同じURLがあるかどうかを xxx.bak のログを
    > まわして確認する(ここ負荷がかなりかかるかも)。

    すっかり忘れてました。
    URLがログに同じ順番で記録されると勝手な認識してました(^^;
    確かにこれでは作動が軽いこのスクリプトの持ち味を無くしてしまいます。

    > これを考えると、過去ログになるときにそのひとつ前の過去ログと計算したものを、
    > 何か別のログに書き出して、ランキングではそのログを表示する、
    > という方法がいいかもしれませんね。
    > (書くことは簡単ですが、プログラムにするのは難しそうですね(^^;)

    技術的に自分には無理そうなのでやめておきます^^;

    すると[6553]で書いたJavaScriptに1つ前のログを表示させるのも難しいでしょうか?

    もしくは表示レイアウトを崩さない為に・・
    表示を5件とした場合、アクセス3以上が1件しか無い時間帯の残り4件の表示を「該当無し」などと表示する事は出来ますでしょうか?
    ↑これが出来るとそれだけでもかなり助かります。

    今すぐは無理でもいずれのバージョンアップで実装されたら嬉しいです。
引用返信 [メール受信/OFF] 削除キー/
■6577 / inTopicNo.7)  Re[6]: ReverseAccessについて。
□投稿者/ りゅういち -(2003/01/28(Tue) 22:20:09)
http://www.cj-c.com/
    No6572に返信(Marviさんの記事)
    > すると[6553]で書いたJavaScriptに1つ前のログを表示させるのも難しいでしょうか?

    これは簡単にできます。初期状態52行目に
    $logs="$klog\/$DAY[$#DAY].bak";
    と入れてみてください。最新過去ログ表示させるには、$#DAY は 0 かも。
    (どっちかだとおもいます(^^;)
引用返信 [メール受信/OFF] 削除キー/
■6579 / inTopicNo.8)  Re[7]: ReverseAccessについて。
□投稿者/ Marvi -(2003/01/29(Wed) 12:51:11)
    レスありがとうございます。

    No6577に返信(りゅういちさんの記事)
    > これは簡単にできます。初期状態52行目に
    > $logs="$klog\/$DAY[$#DAY].bak";
    > と入れてみてください。最新過去ログ表示させるには、$#DAY は 0 かも。

    $DAY[0].bakで試したところ正常に表示され、現在のところ問題も無いようです。

    色々とお手間を取って頂き誠にありがとうございました。
    これからもCJ-CLUB様の益々の発展を願っております。
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■6589 / inTopicNo.9)  Re[8]: ReverseAccessについて。
□投稿者/ Marvi -(2003/01/30(Thu) 20:13:34)
    済みを付けた後に申し訳ありません。

    JavaScriptで最新過去表示にすると新たなアクセスログを取らなくなってしまいます。
    IPの重複カウントをOFFにして自分で数度試しました。
    以下スクリプト(少し改変あります)
    http://www.tokinavi.com/access.txt

    $DAY[0] も $DAY[$#DAY] も試してみましたがダメでした。
    コメントアウト(#)するとカウントが始まるので間違いないとは思いますが。
    access.cgiを2つ置いて片一方をJavascriptの表示専用で、もう一つをログ取得・・なんて方法出来ますか?

    どこか記述ミスでしたら申し訳ありません。
引用返信 [メール受信/OFF] 削除キー/
■6595 / inTopicNo.10)  Re[9]: ReverseAccessについて。
□投稿者/ りゅういち -(2003/01/30(Thu) 20:58:48)
http://www.cj-c.com/
    No6589に返信(Marviさんの記事)
    > JavaScriptで最新過去表示にすると新たなアクセスログを取らなくなってしまいます。
    > IPの重複カウントをOFFにして自分で数度試しました。
    > 以下スクリプト(少し改変あります)
    > http://www.tokinavi.com/access.txt

    これは、過去ログにカウントしちゃっている可能性がありますね(^^;
    一度、ログを他に指定したのに、それを戻していませんでした。
    $logs=$log; を上記テキストの71行目に入れれば大丈夫だと思います。
引用返信 [メール受信/OFF] 削除キー/
■6615 / inTopicNo.11)  Re[10]: ReverseAccessについて。
□投稿者/ Marvi -(2003/02/02(Sun) 11:37:16)
    レスありがとうございました。

    No6595に返信(りゅういちさんの記事)
    > 一度、ログを他に指定したのに、それを戻していませんでした。
    > $logs=$log; を上記テキストの71行目に入れれば大丈夫だと思います。

    上記の方法でもやはりダメでした(T-T)

    自分でも数日間、ログをフォーマットしたりローカルで色々検証した結果、71行目に上記を追加せずに51行目から70行目までをsub htmlの直前に移植する事で正常に作動しました。
    これならば単純にログファイルを読み込んだ後に過去ログを取り出すので問題ないかな・・と思いまして。

    173行目のexit;の前か後か悩んだんですが、あくまでもjsファイルに読み込ませるだけだから平気かな?と思いexit;の後にしました。
    今のところ弊害も出ていないのでこのままですが。
    もしexit;の前に持っていった方がいいならアドバイスを頂けたら幸いです。
    「動いてるからいいや」的な使い方で間違ったものをサポート掲示板に残すのは失礼だと思いますし、他の方が参考にした時にトラブルが減るようにしたいですし。

    細かなサポートに大変感謝しております。
    今後とも宜しくお願い致します。
引用返信 [メール受信/OFF] 削除キー/
■6617 / inTopicNo.12)  Re[11]: ReverseAccessについて。
□投稿者/ りゅういち -(2003/02/02(Sun) 21:46:54)
http://www.cj-c.com/
    No6615に返信(Marviさんの記事)
    > 173行目のexit;の前か後か悩んだんですが、あくまでもjsファイルに読み込ませるだけだから平気かな?と思いexit;の後にしました。
    > 今のところ弊害も出ていないのでこのままですが。
    > もしexit;の前に持っていった方がいいならアドバイスを頂けたら幸いです。
    > 「動いてるからいいや」的な使い方で間違ったものをサポート掲示板に残すのは失礼だと思いますし、他の方が参考にした時にトラブルが減るようにしたいですし。

    ちょっとあやしいですね、exit;のあとに記述してはそこまで動作しませんから。
    exit; の前に記述してしばらく様子を見てみてください。

引用返信 [メール受信/OFF] 削除キー/
■6629 / inTopicNo.13)  Re[12]: ReverseAccessについて。
□投稿者/ Marvi -(2003/02/05(Wed) 20:19:21)
    お世話になってます。
    長いスレッドになってしまい申し訳ありません。

    No6617に返信(りゅういちさんの記事)
    > ちょっとあやしいですね、exit;のあとに記述してはそこまで動作しませんから。
    > exit; の前に記述してしばらく様子を見てみてください。

    exit;の前に移動させて数日試しました。
    過去ログの生成と新規ログへの書き込みは正常に行われます。
    ただ、JavaScript用のファイル($JSF)には $logs="$klog\/$DAY[0].bak"; を書き込んだ時のログが残ってしまい反映されません。
    コメントアウトすると、その後リファラーを受け取った後からは当日ログがキチンと反映されますが、再び#を消したあとはそのままの状態が残って数日経ってしまいます。
    $courはずっと1で試してます。
    そこで$save内の値の.bakファイルだけ読ませようとしました。
    と言うのは、$logs="$klog\/(その時残ってるログの数字).bak"; にすると正常に表示するからです。
    if($JSc){ の後に
    open(SET,"$save");
    $SET = <SET>;
    close(SET);
    $logs="$klog\/$SET.bak";


    上手く行かないもんです。
    他に何か良い方法はありますでしょうか?
    $courは1で構いません。
    アドバイスありましたら、宜しくお願い致します。
    自分の力量不足で長引かせてしまい申し訳ありません。m(_ _)m
引用返信 [メール受信/ON] 削除キー/
■6632 / inTopicNo.14)  Re[13]: ReverseAccessについて。
□投稿者/ りゅういち -(2003/02/05(Wed) 22:00:21)
http://www.cj-c.com/
    No6629に返信(Marviさんの記事)
    > ただ、JavaScript用のファイル($JSF)には $logs="$klog\/$DAY[0].bak"; を書き込んだ時のログが残ってしまい反映されません。
    > コメントアウトすると、その後リファラーを受け取った後からは当日ログがキチンと反映されますが、再び#を消したあとはそのままの状態が残って数日経ってしまいます。

    $logs="$klog\/$DAY[0].bak"; のとき、access.cgi?count
    にアクセスするとランキングは表示されますか? サーバエラーですか?

    > と言うのは、$logs="$klog\/(その時残ってるログの数字).bak"; にすると正常に表示するからです。

    これをみると、ひょっとしたら、改行(\n) が $DAY[0] に入っているのかもしれません
    以前の場所に戻し、
    $DAY[0]=~ s/\n//g; $logs="$klog\/$DAY[0].bak";
    としてみてください。
引用返信 [メール受信/OFF] 削除キー/
■6634 / inTopicNo.15)  Re[14]: ReverseAccessについて。
□投稿者/ Marvi -(2003/02/06(Thu) 00:00:22)
    レスありがとうございます。

    No6632に返信(りゅういちさんの記事)
    > $logs="$klog\/$DAY[0].bak"; のとき、access.cgi?count
    > にアクセスするとランキングは表示されますか? サーバエラーですか?

    これはずっと問題ありませんでした。

    > これをみると、ひょっとしたら、改行(\n) が $DAY[0] に入っているのかもしれません
    > 以前の場所に戻し、
    > $DAY[0]=~ s/\n//g; $logs="$klog\/$DAY[0].bak";
    > としてみてください。

    今思えばこんな肝心なことしてなかったですね(^^;
    chop($DAY[0]); か chomp($DAY[0]); をすれば良かったんですよね。

    現在の結果としては、すぐ最新過去ログが反映されました。
    現在ログへの取得も順調です。

    まとめ。
    52行目に「$DAY[0]=~ s/\n//g; $logs="$klog\/$DAY[0].bak";」を追加。
    ↑を追加した後の71行目に「$logs=$log;」を追加。
    以上で問題なさそうです。

    りゅういちさん、本当にありがとうございました<(__)>
解決済み!
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新着記事 トピック表示 検索 過去ログ

- Child Tree -