* 通信のログ [#s655c419] - ページ: [[罪罰改造板3]] - 投稿者: [[卑弥呼]] - 優先順位: 普通 - 状態: 提案 - カテゴリー: こんなのが欲しい♪ - 投稿日: 2008-02-02 (土) 10:50:29 - バージョン: ** メッセージ [#g8327d7c] 通信のログが増えてきたので、letter_log以外に、letter_log01,letter_log02.... とつくりました(古いのを移行しただけです) 現在は一個一個letter.cgi以外にletter01.cgi,letter02.cgi... として、展開する記事を変えて表示するようにしました。 しかし、これでは作るさぎょうが大変なので、いい方法を考えています 月ごとにログを表示したいと思います 最初、letter.cgiをひらくと、そのつきのログが、でて、送信フォームの下に、2007年11月,12月,2008年1月,2月,,, というリンクのようなものを設置し、その月のログが表示される、というようにしたいと思っています しかし、私の今の力ではやってみましたが、どうにもできないので、どなたか、教えていただけないでしょうか -------- - まず$logfileを $logfile="./logdata/letter_log_"; に変更して sub regist とログファイルを開くところに if(!-e $logfile${month}.cgi){ open(OUT,"> $logfile${month}.cgi"); close(OUT); } を加えて、あとはリンクなりボタンなりで月別のログを見れるようにすればいいかと。 -- [[six]] &new{2008-02-02 (土) 21:19:39}; - ありがとうございます!やってみます! -- [[卑弥呼]] &new{2008-02-03 (日) 00:08:48}; - すみません やってみたのですがよく、、、 -- [[卑弥呼]] &new{2008-02-03 (日) 00:23:33}; - もうしわけありませんが、もう少し具体的に教えていただけないでしょうか? -- [[卑弥呼]] &new{2008-02-03 (日) 00:24:04}; - 1. $logfile = "./logdata/letter_log.cgi"; を $logfile = "./logdata/letter_log_"; に変更。 2.sub html の # ログを展開 の前と、sub regist の # ログを読み込み の前に if(!-e $logfile${month}.cgi){ open(OUT,"> $logfile${month}.cgi"); close(OUT); } を追加。 3.sub html と sub regist の open(IN,"$logfile") || &error("Open Error : $logfile"); を open(IN,"$logfile${month}.cgi") || &error("Open Error : $logfile${month}.cgi"); に変更。 で、できるかと思いますー。 -- [[six]] &new{2008-02-03 (日) 00:46:49}; - ログファイルの変更は必要ありますか?また、そのファイル(例えば2008年1月のログ)をひらくさいのリンクはどうなりますか?何から何まできいてごめんなさい -- [[卑弥呼]] &new{2008-02-03 (日) 01:43:02}; - ローカルでやってみたところ、まっしろになってしまったので。、。 -- [[卑弥呼]] &new{2008-02-03 (日) 01:43:31}; - あーあと~ ログ更新処理の open(OUT,">$logfile") || &error("Write Error : $logfile"); を open(OUT,">$logfile${month}.cgi") || &error("Write Error : $logfile${month}.cgi"); に変更する必要があります。~ ローカルでテストする前にも文法のチェックはしてください。即興物なので他にも修正する箇所があると思います^^;~ 月別表示は $mode を使って作成してください。~ &log1 if($mode eq 'log1'); のようにして。(その場合、&html if($mode ne 'log1'); のようにする -- [[six]] &new{2008-02-03 (日) 05:03:25}; - このようになりました、、、 クォート('や")で囲まれていないScalarがあります。 あなたのプログラムの 222行目付近だと思います。→222行目へ 右記の記述がある付近にあるERRORだと思われます。 「$logfile${month}」 Scalar found where operator expected at program line 222, near "$logfile${month}" どうゆうことでしょうか? -- [[卑弥呼]] &new{2008-02-03 (日) 11:50:43}; - あー my $file="$logfile${month}.cgi"; if(!-e $file){ open(OUT,"> $file"); close(OUT); } でした^^;たぶんコレでいけます。 -- [[six]] &new{2008-02-03 (日) 13:40:31}; - ありがとうございます!エラーはとりあえずなくなったようです!しかし、どのようにそのつきのを表示したらよいかよくわかりません、、、月別表示は $mode を使って作成してください。 の部分が…… 本当に何度もすみません -- [[卑弥呼]] &new{2008-02-03 (日) 14:03:07}; #comment