#!/usr/local/bin/perl #フォームデコード用ライブラリ #ダウンロード先↓ #http://www.bio.cam.ac.uk/cgi-lib/ require './cgi-lib.pl'; #基本的に次から次へと内容を追記していくだけです。 #コミュニケーション系で最も簡単と思われます。 $title = 'Memoメモ'; #書き込みデータの位置 $data_file = './data/memodata.dat'; #データの有無 無 = 1 $file_no = 0; #当スクリプト $script_file = 'c-basic.cgi'; #データファイルオープン if (!open(DATA,$data_file)) { $file_no = 1; } @lines = ; close(DATA); #cgi-lib.plの関数。これを呼び出すとフォームの内容が%inに格納される &ReadParse; #フォームデータに「data」と「regi」が入っていたら記録 if ($in{'data'} ne "" && $in{'regi'} ne "") { ®idata; #上記以外で、フォームデータに「dell」があったら削除 }elsif ($in{'dell'} ne ""){ &delldata; #それ以外は表示 }else{ &printdata; } ########################################################### #ページ表示 sub printdata { print "Content-type: text/html\n\n"; print <<"EOF"; $title

$title



EOF if($file_no == 1){ print "データファイルはありません"; }else{ foreach $line (@lines) { print $line; } } print "\n"; exit; } ########################################################### #書き込み sub regidata { if (!open(DATA,">> $data_file")) { &error('書き込みエラー','記録できません.'); } print DATA "$in{'data'}
\n"; close(DATA); #もう一度自分を呼び出す。 print "Location: $script_file\n\n"; #または完了表示 exit; } ########################################################### #削除 sub delldata { unlink $data_file; #もう一度自分を呼び出す。 print "Location: $script_file\n\n"; #または完了表示 exit; } ########################################################### #エラー表示 sub error { #ローカル変数の設定 #@_は引数の配列 local (@msg) = @_; local ($i); print "Content-type: text/html\n\n"; print <<"EOF"; $_[0]

$_[0]

EOF print "\n"; print "\n"; exit; }