#!/usr/bin/perl #--------------------------------- #多摩キノコの「教えて」CGI  # by M.Nakanishi 02-02-20 V1/02-26 #--------------------------------- require './cgi-lib.pl'; require './jcode.pl'; #-------定数----------------------------------- $PATH_DATA="/home/httpd/vhosts/multirep.net/httpdocs/data/kinokoNm.csv"; #発言データのパス $PATH_PIC="teachIMG"; #写真画像のパス $pictu_N=13; #掲載しているキノコの総数 #-------パラメター解析-------------------------- ReadParse(); while(($key,$val)=each(%in)){ &jcode'convert(*val,'euc'); $val=~s/\r\n/
/g; $val=~s/\r/
/g; $val=~s/\n/
/g; $in{$key}=$val; } $Kname=$in{'N001'}; #キノコの名前 $simei=$in{'simei'}; #人間の名前 $knum=$in{'knum'}; #キノコNO $mead=$in{'mead'}; #メールアドレス $msg=$in{'msg'}; #メッセージ #----入力チェック------------------- if($Kname) { if(!$simei){ out_err(201); } } if($simei){ if(!$Kname){ out_err(202); } } #----メインルーチン--------------------- if($Kname && $simei){ #入力確認して「答え」データ蓄積 out_data(); } answer(); #「答え」の表示内容の配列を作成 out_html(); #画面を表示 #----サブルーチン-------------------------- #表示内容の配列を作る # sub answer{ #4つの配列を初期化 for($i=0;$i<$pictu_N;$i++){ $osie[$i]=<<"EOM";
教えていただける方は下のボタンを押してください

EOM } @hyouji=(); @hyoujiM=(); @msg=(); #蓄積データを読み込み、配列に入力 open(REC,"<$PATH_DATA"); @kotae=; foreach $tmp(@kotae){ chomp $tmp; ($Kname,$simei,$knum,$mead,$msg)=split(/,/,$tmp); if($Kname && $simei){ $osie[$knum]=""; $hyouji[$knum]=<<"EOM"; キノコの名前 : " $Kname "



 教えていただいた方 : $simeiさん EOM if($mead){ $hyoujiM[$knum]=<<"EOM"; $simeiさんへメール EOM } if($msg){ $msg[$knum]=<<"EOM";
$msg;
EOM } } } } #データを蓄積する # sub out_data{ $result=join(',',$Kname,$simei,$knum,$mead,$msg); open(FILE,">>$PATH_DATA") || out_err(100); flock(FILE,2); print FILE "$result\n"; close(FILE); } # htmlを出力する,教えて欲しいキノコを繰り返し羅列する。 # sub out_html{ print "Content-type:text/html;charset=EUC-JP\n\n"; print <<"EOM"; 多摩ニュータウンのキノコ「教えて」ページ
EOM for($j=0;$j<$pictu_N;$j++){ print <<"EOM"; EOM } print <<"EOM";
$osie[$j] $hyouji[$j]
$hyoujiM[$j]
$msg[$j]

 

EOM } #エラー出力処理 # sub out_err{ local($err_num)=@_; if ($err_num eq "202"){ $err_msg=<<"EOM";
"キノコ名が未記入です、申し訳ありませんが

ブラウザーの「戻る」ボタンで戻り、ご記入ください。"
EOM }elsif($err_num eq "201"){ $err_msg=<<"EOM";
"お名前が未記入です、申し訳ありませんが

ブラウザーの「戻る」ボタンで戻り、ご記入ください。"
EOM }else{ $err_msg=<<"EOM";
"ただいま、メンテナンス中です、

大変申し訳ありません。"
EOM } print "Content-type:text/html;charset=EUC-JP\n\n"; print <<"EOM"; エラーメッセージ

 

***** エラーメッセージ *****


$err_msg




EOM exit; }