「メモ書きプログラム-ソース」の編集履歴(バックアップ)一覧はこちら
「メモ書きプログラム-ソース」(2008/07/15 (火) 17:51:21) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
<p>#!/usr/local/bin/perl<br />
###################################################<br />
#memo.cgi メモ書きプログラム<br />
# 2001.09.10 MARCO<br />
# edit 2002.05.09 MARCO<br />
#<br />
# パーミッション<br />
# memo.cgi(755)<br />
# $file(666)<br />
###################################################<br />
require 'jcode.pl';<br />
############ 設定項目 ##############<br />
#メモファイル名(パーミッションを666で設定)<br />
$file='memo.txt';<br />
#戻るページ<br />
$return_page='../../cgitop.html';<br />
#ページタイトル<br />
$page_title='メモ帳';<br />
#背景GIF<br />
$bg_gif='kumo.gif';<br />
#ページ背景色<br />
$page_bgcolor='#ffffff';<br />
#タイトル文字色<br />
$title_color='#003366';<br />
#ページ文字色<br />
$page_txtcolor='#664400';<br />
#テーブル背景色<br />
$tbl_bgcolor1='#aaffbb';<br />
$tbl_bgcolor2='#eeeeee';<br />
#削除キー<br />
$del_key='123';<br />
######################################<br />
#日付と時間を取得<br />
($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime();<br />
#日付時刻のフォーマットを整える<br />
$mon++;<br />
$year += 1900;<br />
$DATE = "$year年$mon月$mday日 $hour時$min分";</p>
<p>#HTML作成<br />
print "Content-type: text/html\n\n";<br />
print "<HTML>\n<HEAD>\n";<br />
print "<meta http-equiv=\"Content-Type\"
content=\"text/html;charset=x-sjis\">\n";<br />
print "<TITLE>$page_title</TITLE>\n";<br />
print "</HEAD>\n<BODY bgcolor=$page_bgcolor text=$page_txtcolor
background=$bg_gif>\n";<br />
print "<a href=$return_page>戻る</a>\n";<br />
print "<center><font size=5
color=$title_color><b>$page_title</b></font></center>\n";<br />
#入力フォームの表示<br />
print "<FORM ACTION=memo.cgi METHOD=POST>\n";<br />
print "<CENTER><TABLE width=80% bgcolor=$tbl_bgcolor1>\n";<br />
print "<TR><TD>入力画面</TD></TR>\n";<br />
print "<TR><TD>名 前</TD><TD><input type=text
name=FLD01 size=20></TD></TR>\n";<br />
print "<TR><TD>タイトル</TD><TD><input type=text
name=FLD02 size=50></TD></TR>\n";<br />
print "<TR><TD>コメント</TD><TD><textarea name=FLD03
rows=5 cols=70></textarea></TD></TR>\n";<br />
print "<TR><TD>区 分</TD><TD><input type=radio
name=STATUS value=INS checked>追加\n";<br />
print "<input type=radio name=STATUS value=DEL>削除\n";<br />
print "(キー<input type=text name=DELKEY
size=4>)</TD></TR>\n";<br />
print "<TR><TD>削除対象№</TD><TD><input type=text
name=LINNO size=4></TD></TR>";<br />
print "<TR><TD><input type=submit value=\"登録\"><input
type=reset value=\"取消\">\n";<br />
print "</TD></TR></TABLE></CENTER></FORM>\n";</p>
<p>#入力データを獲得<br />
use CGI;<br />
$form=CGI->new();<br />
$idt1=$form->param("FLD01");<br />
$idt2=$form->param("FLD02");<br />
$idt3=$form->param("FLD03");<br />
$sts=$form->param("STATUS");<br />
$lno=$form->param("LINNO");<br />
$dky=$form->param("DELKEY");</p>
<p>#入力チェック<br />
if(($sts eq 'INS' && $idt1 ne '') || ($sts eq 'DEL' && $dky eq
$del_key)){<br />
#一旦全データを読み込む<br />
open(NOTE,"$file");<br />
$no=0;<br />
while(<NOTE>){<br />
@DT{$no}=$_;<br />
$no++;<br />
}<br />
close(NOTE);</p>
<p> open(NOTE,">$file");<br />
if($sts eq 'INS'){<br />
input_data();<br />
}<br />
$no=0;<br />
while($DT{$no}){<br />
#追加の処理<br />
if($sts eq 'INS'){<br />
print NOTE $DT{$no}<br />
}<br />
#削除の処理<br />
if($sts eq 'DEL'){<br />
if($lno != $no+1){<br />
print NOTE $DT{$no}<br />
}<br />
}<br />
$no++;<br />
}<br />
}<br />
close(NOTE);</p>
<p>sub input_data{<br />
&jcode'convert(*idt1,"sjis");<br />
&jcode'convert(*idt2,"sjis");<br />
&jcode'convert(*idt3,"sjis");<br />
print NOTE "$DATE\t";<br />
print NOTE "$idt1\t";<br />
print NOTE "$idt2\t";<br />
#改行文字の置き換え<br />
$idt3=~s/\r\n/<br>/ig;<br />
print NOTE "$idt3\n";<br />
}</p>
<p>#ファイルを読み込んで出力<br />
open(NOTE,"<$file");<br />
@DATA=<NOTE>;<br />
close(NOTE);<br />
$no=1;<br />
print "<CENTER><TABLE border=1 bgcolor=$tbl_bgcolor1
width=80%>\n";<br />
foreach(@DATA){<br />
($DATE,$dt1,$dt2,$dt3)=split(/\t/,$_);<br />
print "<TR><TD>\n";<br />
print "<font size=1>No.[$no]</font>\n";<br />
print "<font size=3
color=$title_color><b>$dt2</b></font>\n";<br />
print "<TABLE border=0 bgcolor=$tbl_bgcolor2>\n";<br />
print "<TR>";<br />
print "<TD>"; print $dt3; print
"</TD></TR></TABLE>\n";<br />
print "<font size=2>$DATE</font> From
<b>$dt1さん</b></TD></TR>\n";<br />
$no++;<br />
}<br />
print "</TABLE></CENTER>\n";<br />
print "</BODY>\n</HTML>\n";</p>