プログラミングの解説に入る前に、ライブラリと呼ばれるファイルを用意しなければならなりません。ここではcgi-lib.plとjcode.plの2つのファイルが必要です。cgi-lib.plはhttp://cgi-lib.berkeley.edu/からダウンロードできます。(Version ○○○と書いてあるところからダウンロードできます。cgiファイルを置く場所と同じフォルダにダウンロードして、ファイル名をcgi-lib.plに変更してください。)
またjcode.plはftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/からダウンロードできます。(jcode.pl-○○○と書いてあるファイル(最も数字の大きいものが最新バージョンです)を開くとテキストファイルが表示されますので、これをcgiファイルを置く場所と同じフォルダにjcode.plという名前で保存してください。)
次に掲示板に書込んだデータを保存するためのファイルをあらかじめ作っておく必要があります。メモ帳などのテキストエタディタを開き、空白のまま「test.txt」というファイル名でcgiファイルを置く場所と同じフォルダに保存してください。

ではサンプルプログラムを以下に示します。
完成後の掲示板をこちらから確認してみてください。掲示板の機能を充実させるとプログラムが冗長になり非常に解説が読みにくくなるので、ここでは必要最低限の機能に絞ります。読むだけでプログラミングを身に着けるのは困難です。読む作業よりも、作る作業に力を注いだほうがプログラミングは上達しやすいので、下記のサンプルを利用して、ぜひ掲示板の機能を充実させてみてください。
またプログラムはメモ帳などのテキストエディタを使って作成し、拡張子をcgiとして保存してください。
※なお、変数や配列といったプログラミングの基本点な用語も大雑把に説明していきますが、これだけでは良く分からなかった、という場合はプログラミングの基礎をご参照下さい。各ページの一番下にもリンクを貼っておきます。

#!/usr/local/bin/perl

#ライブラリの呼び出し
require 'cgi-lib.pl';
require 'jcode.pl';

#入力フォームから送信されてきたデータを連想配列formに格納する。
&ReadParse(*form);

#配列に格納された名前とメッセージを別の変数に代入する。
$name = $form{'name'};
$message = $form{'message'};

#メッセージ中の改行文字を改行タグに返還する。
$message =~ s/\r\n/<BR>/g;

#名前とメッセージをひとつの変数にまとめる。
$data = "<hr>名前:$name<br>$message\n";

#文字コードをsjisに変換する。
&jcode'convert(*data, 'sjis');

#ブラウザに送られてくるデーターはHTMLファイルであるということを知らせる。
print "Content-type:text/html\n\n";

#入力フォームを画面に出力する
print << "INPUT";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>掲示板</title>
</head>
<body bgcolor="#FFFFCC">
<h1 align="center"><font size="4"><strong>掲示板</strong></font></h1>
<div align="center">
<form name="form1" method="post" action="test.cgi">
<table width="100%" border="0">
<tr>
<td width="150" align="right">名前</td>
<td><input name="name" type="text" size="40"></td>
</tr>
<tr>
<td width="150" align="right">メッセージ</td>
<td><textarea name="message" cols="40"></textarea></td>
</tr>
</table>
<p>
<input type="submit" name="Submit" value=" 送信 ">  
<input type="reset" name="Submit2" value="リセット">
</p>
</form>
</div>

INPUT

#test.txtファイルを開く
open(BBS, "<test.txt") || die "File Open Error.";
@bbs = <BBS>;
close(BBS);

#配列の先頭に、新たに入力されたデータを追加する。
if(@bbs>50){
     unshift @bbs, $data;
}

#配列の末尾から削除する。
if(@bbs>50){
    pop @bbs;
}

#test.txtファイルに新たなデータを書き込む。
open(BBS, ">test.txt") || die "File Open Error.";
print BBS @bbs;
close(BBS);

#配列内のすべてのデータを画面に表示する。。
print "@bbs";
print "<hr></body></html>";

__END__

前ページへ    次ページへ