CGI_掲示板2_宛先表示

「CGI_掲示板2_宛先表示」の編集履歴(バックアップ)一覧はこちら

CGI_掲示板2_宛先表示」(2008/07/12 (土) 14:33:10) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

<p><br /><br /><br /> #!/usr/local/bin/perl</p> <p># 掲示板2(左画面)</p> <p># id=bbs2_l.cgi</p> <p># update.  98.12.4</p> <p># 使用上の注意・・・漢字コードの変換が不完全ですので文字化けするおそれがあります。<br /> #          そのつもりでお使い下さい。</p> <p># 日本語コード変換ライブラリ(v2.0)の指定<br /> # &amp;ReadParse命令で、$in{ }の変数にフォーム入力データが格納される  </p> <p>require 'cgi-lib.pl';<br /> require 'jcode.pl';<br /> &amp;ReadParse;</p> <p># 設置するURLを設定<br /> $reload = 'http://www0.kumagaya.or.jp/cgi-bin/users/chichibu/bbs2_l.cgi';<br /> $call = 'http://www0.kumagaya.or.jp/cgi-bin/users/chichibu/bbs2.cgi';</p> <p>$file = &quot;/dialup/chichibu/cgi-bin/bbs2.dat&quot;;</p> <p># データ確認デバッグモード(通常は$test=&quot;&quot;、各画面で変数状態を見たいときは&quot;on&quot;)<br /> $test=&quot;&quot;;</p> <p># 消去日計算<br /> ($byo,$fun,$ji,$dd,$mm,$yy,$yobi) = localtime(time);<br /> $mm++;<br /> # 2桁化<br /> $mm = sprintf(&quot;%.2d&quot;,$mm);<br /> $dd = sprintf(&quot;%.2d&quot;,$dd);<br /> # 西暦4桁処理<br /> if ($yy &lt; 70) { $yy = $yy + 2000;}<br /> else          { $yy = $yy + 1900;}<br /> # 本日<br /> $ymd=$yy.$mm.$dd;</p> <p>####################################<br /> #                                  #<br /> #   メインルーチン(処理の分岐)     #<br /> #                                  #<br /> ####################################<br /> #  全体の流れを決定する</p> <p>if ($in{'action'} eq 'main') { &amp;main; }</p> <p>else { &amp;first; }</p> <p># なくても良いが最終出口を示す<br /> exit;</p> <p>#############################################<br /> #                                           #<br /> #    データを読む             # <br /> #                                           #<br /> #############################################          </p> <p>sub read {</p> <p># データを読み各連想配列に加算する<br /> #   1       2       3     4    5     6<br /> # 日付時刻、宛先、内容、差出人、消去日、訂正用パスワード<br /> open(DB,&quot;$file&quot;);<br /> flock(DB,2);<br /> %data=();<br /> $cnt=0;</p> <p>while (&lt;DB&gt;)  {</p> <p>($dt1,$dt2,$dt3,$dt4,$dt5,$dt6) = split(/\t/,$_);</p> <p># 表示期限チェック<br /> if ($dt5 &gt; 0 &amp;&amp; $dt5 &gt;= $ymd) {</p> <p># 宛先毎にデータ登録件数を調べる<br /> $data{$dt2}++;<br /> $cnt++;</p> <p># 右画面に漢字コードではデータを渡せないので該当するデータのキーを一つ記憶する<br /> if ($data{$dt2} == 1)  {$key{$dt2} = $dt1 }</p> <p>} # end of if</p> <p>} # end of while</p> <p>flock(DB,8);<br /> close(DB);</p> <p>} # end of read</p> <p> </p> <p>#############################################<br /> #                                           #<br /> #    最初に処理するルーチン          # <br /> #                                           #<br /> #############################################          </p> <p>sub first {</p> <p>&amp;main;</p> <p>} # end of first</p> <p>#############################################<br /> #                                           #<br /> #    メイン処理画面を表示する            # <br /> #                                           #<br /> #############################################          </p> <p>sub main {</p> <p>&amp;read;</p> <p>@key=keys(%data);<br /> @new=sort sortsb @key;</p> <p># 表示出力処理<br /> print &quot;Content-type: text/html\n\n&quot;;<br /> print &lt;&lt;EOM;<br /> &lt;HTML&gt;<br /> &lt;HEAD&gt;&lt;TITLE&gt;掲示板2左&lt;/TITLE&gt;&lt;/HEAD&gt;<br /> &lt;BODY BGCOLOR=&quot;#ffffff&quot;&gt;<br /> EOM</p> <p>print '&lt;form method=&quot;post&quot; action=&quot;' . $reload . '&quot;&gt;' . &quot;\n&quot;;<br /> print '&lt;input type=hidden name=&quot;action&quot; value=&quot;main&quot;&gt;' . &quot;\n&quot;;<br /> print '&lt;input type=submit value=&quot;最新情報表示&quot;&gt;' . &quot;\n&quot;;<br /> print '&lt;/FORM&gt;';<br /> print '&lt;BR&gt;'.&quot;\n&quot;;</p> <p>print '&lt;TABLE BORDER=&quot;1&quot;&gt;';<br /> print '&lt;TR&gt;';<br /> print &quot;&lt;TH&gt;宛先&lt;/TH&gt;&lt;TH&gt;件数&lt;/TH&gt;&lt;/TR&gt;\n&quot;;<br /> # 全件<br /> print '&lt;TR&gt;';<br /> print '&lt;TD&gt;'.&quot;\n&quot;;<br /> print '&lt;A HREF = &quot;'.$call.'?action=main&amp;syurui=all&amp;page=1&quot; TARGET=&quot;main&quot;&gt;全件表示&lt;/A&gt;'.&quot;\n&quot;;;<br /> print '&lt;/FONT&gt;'.&quot;\n&quot;;<br /> print '&lt;/TD&gt;'.&quot;\n&quot;;<br /> print '&lt;TD ALIGN=&quot;right&quot;&gt;&lt;FONT COLOR='.$iro.'&gt;'.$cnt.'&lt;/FONT&gt;&lt;/TD&gt;'.&quot;\n&quot;;<br /> print '&lt;/TD&gt;'.&quot;\n&quot;;<br /> print '&lt;/TR&gt;'.&quot;\n&quot;;</p> <p>foreach (@new) {</p> <p>print '&lt;TR&gt;';<br /> print '&lt;TD&gt;'.&quot;\n&quot;;<br /> # ユニークとなるコード(半角)を渡す<br /> print '&lt;A HREF = &quot;'.$call.'?action=main&amp;syurui='.$key{$_}.'&amp;page=1&quot; TARGET=&quot;main&quot;&gt;'.$_.'&lt;/A&gt;'.&quot;\n&quot;;;<br /> print '&lt;/FONT&gt;'.&quot;\n&quot;;<br /> print '&lt;/TD&gt;'.&quot;\n&quot;;<br /> print '&lt;TD ALIGN=&quot;right&quot;&gt;&lt;FONT COLOR='.$iro.'&gt;'.$data{$_}.'&lt;/FONT&gt;&lt;/TD&gt;'.&quot;\n&quot;;<br /> print '&lt;/TD&gt;'.&quot;\n&quot;;<br /> print '&lt;/TR&gt;'.&quot;\n&quot;;<br /> } # end of foreach</p> <p>print '&lt;/TABLE&gt;';<br /> } # end of main</p> <p>####################################<br /> #                                 <br /> #   宛先を文字順にソートする(整理する) <br /> #                                 <br /> ####################################<br /> sub sortsb { $a &lt;=&gt; $b; }</p> <p>################ end of script ###################</p> <p> </p>

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。