Free CGI Perl PHP Script Olive Design CGI

一言メッセージ掲示板 その1

CGIへフォーム内容を渡すスクリプト その5を利用して一言メッセージの掲示板をつくってみました。

まず、ファイル名bbs01.cgiを作成し、下のソースを貼り付けてパーミションを755にします。 同じ階層に空のファイルlog.datを作成してパーミションを666にします。

サンプル

ソース

#!/usr/bin/perl

#このスクリプトの場所
$this = "./bbs01.cgi";

#ログファイルの場所
$logfile = "./log.dat";

#フォームからデータを読み込み
#読み込んだデーターを$inputに代入

$input = $ENV{ 'QUERY_STRING' };

#$inputから文字列をsplitで分解(=を削除)して$nameと$commentに代入
($name,$comment) = split /=/, $input;

#--valueデータのデコード処理
$comment =~ tr/+/ /;
$comment =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;


#データファイル読み込み
open(LOG, "$logfile");
@log = <LOG>;
close(LOG);

#ログ保存数を設定
$data_max = 10;

#コメントが追加された時の処理
if ($comment){ 
  open(LOG,">$logfile") ;
  unshift (@log,"$comment\n");
 #ログ保存数を設定($# は変数のインデックスの最大値を求める記述)
   if ($#log > ($data_max -1)){
     $#log = $data_max -1;
   }
  print LOG @log;
  close(LOG);
}

#HTMLの表示
print <<"HTML";
Content-type: text/html

<html><head><title>一言メッセージ</title></head>
<body>
<h3>一言メッセージを書いてください。</h3>
<form action="$this"><br>
保存コメント数は $data_max です。<br>
入力 =>
<input type=text name="comment">
<input type="submit" value="送信">
<p>
HTML

#コメント部分の表示
foreach $com (@log){
 print "=> $com<br/>";
}


print "</p></body></html>";
exit;



__END__

Perl PHP Free CGI Script OliveDesign CGI

Perl PHP Free CGI Script OliveDesign CGI

プライバシーポリシー / 特定商取引法に基づく表示