#!/usr/bin/perl #-------------- #ゲストブックのcgi # by M.Nakanisi '02-02-13 # 02-02-23 LIMEサーバへ搭載のためにパスを修正 #---------------- require './jcode.pl'; require './cgi-lib.pl'; #--定数------------ $PATH_DATA="/home/httpd/vhosts/multirep.net/httpdocs/data/guest.csv"; #パスを修正 02/02/23 $URL_CGI="./guest.cgi"; #パスを修正 02/02/23 ($sec,$min,$hour,$mday,$mon,$year)=localtime(time); #日時入力 $now=sprintf("%d/%02d/%02d %02d:%02d",$year+1900,$mon+1,$mon,$hour,$min); $host=$ENV{'REMOTE_HOST'}; #ホスト情報 #---パラメータ ReadParse(); while(($key,$val)=each(%in)){ &jcode'convert(*val,'euc'); #文字コードをEUCに変換 $val=~s//</g; # $val=~s/\r\n|\r\n]/
/g; # $val=~s/,/、/g; # $in{$key}=$val # } $hndname=$in{'hndname'}; $mead=$in{'mead'}; $msg=$in{'msg'}; $url=$in{'url'}; $button=$in{'button'}; #送信ボタンが押されたか? #---未入力チェック if ($button && !$msg){ #$msg eq ""でもよい/送信ボタンが押され且未入力 out_err(100); } #http://が空だったら省く if($mead eq "http://"){ $mead=""; } #-----------メイン処理--- if($button){ #ボタンが押されたら out_data(); $msg_thanks="メッセージご記入ありがとうございました。"; }else{ $msg_thanks="ご意見、ご感想をお聞かせください。"; } out_html(); exit; #----以下関数---- #out_data # # sub out_data{ $data=join(',',$now,$hndname,$mead,$msg,$url,$host); open (FILE,"+<$PATH_DATA")|| out_err(201) ; #データファイルを読み書きモード flock(FILE,2); #ロックする @lines=; unshift(@lines,$data."\n"); #@linesの0番目の要素として新しいデータを追加 seek(FILE,0,0); #ファイルポインターを先頭に戻す print FILE @lines; #@linesの内容をファイルに入れる close(FILE); # } #エラー処理とエラーメッセージhtmlの出力---- # sub out_err{ local($err_num)=@_; if($err_num eq "100"){ $err_msg="下記が未記入です。
ブラウザーの「back」ボタンで戻ってご記入ください。

$err_info"; }elsif($err_num eq "503"){ $err_msg="メールアドレスの記入が正しくありません
ブラウザーの「back」ボタンで戻ってご記入ください
"; }else{ $err_msg="只今、メンテナンス中です。
申し訳ございません。
"; } print "Content-type:text/html;charset=EUC-JP\n\n"; print <<"EOM"; ERROR MESSAGE
$err_msg

EOM exit; } #------htmlゲストブック本文の出力------ # sub out_html{ print"Content-type: text/html; charset=EUC-JP\n\n"; print<<"EOM"; 多摩ニュータウンのキノコ_ゲストブック

◇◇◇ 多摩のキノコ ゲストブック ◇◇◇

$msg_thanks

ゲストブックに書き込む  戻る

EOM open(FILE,"$PATH_DATA") || out_err(202); flock(FILE,2); @lines=;#ファイルの全ての内容を一度に配列の要素として取りこむ close(FILE); foreach $line (@lines){ chomp($line); ($now,$hndname,$mead,$msg,$url,$host)=split(/,/,$line);#カンマで区切って各変数を取り出す #--ハンドル妥当性チェック--- if(!$hndname){ $hndname="匿名"; } #メールアドレスの有無によるリンクの有無 if($mead){ $name_unit=""; }else{ $name_unit=""; } print<<"EOM";
$hndname
$now
$name_unit
$msg

EOM } print<<"EOM";

 ◇◇◇ ここにご発言をお書きください。 ◇◇◇

メールアドレス
ご発言
 

EOM }