YukisRoom 「ホームページ作成講座」 CGI活用講座

HTML基礎講座

HTML活用講座

CGI基礎講座

CGI活用講座

CGI活用講座第6回、CGI作成編(1)です。

CGI活用講座、第6回は、作成編です。

今回から、作成編に入ります。
ダウンロード&テストは、教材DownLoad です」
CGI活用講座→第6回に進んでください。
ダウンロードした教材は、アップロード用です、基礎講座を参考に、Perlのパスをサーバにあわせてください。

では、CGI活用講座第6回の開始です。

alphaEDIT

右の図は、ローカル環境でテストした時の物、

4回、断続的に、入力テスト実施後の結果です。

御覧のように、掲示板風になってます。

余り、Perlのコードが大きくならない内に、第6回目とします。



alphaEDIT

CGIファイルです、こちらは、ローカル環境の物です。

ファイル名「katuyou6.cgi」

ダウンロード後に、Perlのパスを書きかえれば同じになります。

では、解説を始めます。

今回から、コメントで区切りを入れましたから、コメント範囲毎に解説します。

1行目はPerlのパス設定、ローカル用はこうなります。

初期設定
ライブラリは、「CGI.pm」と「jcode.pl」を使用します。
今回は、データ記録用に「datafile.log」を使用します。
ファイル名は、ここで設定すれば、何でもOKなんです。

出力開始
CGI.pmによる、ヘッダー部分とタイトル表示、いつも同じです。

入力欄出力
20行目、print <<"end"、"end"の文字が出るまで連続出力。
これは、便利、普通に、HTMLを書いておけば良いから、過去の財産をコピペでも上手く行きます。


alphaEDIT

27行目で、<textarea>を使ってますが、rows,colsを指定する以外使い方は似たような物です。

後日、CSSを設定しますから、今は、飾りは一切つけません。

data有無
名前の入力があるか確認して、有れば、記録処理をします。
&付きの名前は、サブルーチン呼び出しです。

36行目、&kakikomi、dataファイルに書き込み処理をします。
38行目、&gprint、dataファイルから読みだして画面表示します。

出力終了
HTMLのフッターを出力します

43行目、exit;、サブルーチンに処理が流れ込まないように、ここで、終了にしてますが、無くてもいいのかも知れません。

data書き込み
 サブルーチンの説明が抜けてますね、失礼しました。
サブルーチンは必要な時に呼び出して実行する物、これを拡張するとライブラリにも出来ます。

47行目は、36行目からの呼び出しで実行する物、転送データがあったら、記録ファイルに書き込む処理です。

後日の編集が楽なようにサブルーチン化してあります、

データ取り出し
CGI.pmによる、転送データ取り出しは、この様にします。

日本語コード変換
小生の環境では不要ですが、一般化の為に入れてあります。


alphaEDIT

ファイルオープン
61行目、open(IN,"<$data");、dataファイルを入力用に開いています。
「IN」をファイルハンドルと呼ぶようです、大文字基準なようですが、何でも良いようですね、使い方は見たとおり、開いて、読み出して、閉じて置く、これですね。

小生は色々な言語でプログラミングしますが、データベース以外はこの方式で使います。

70行目、コメント中の改行は記録・読出の邪魔なので、半角スペースに変換しておきます。

74行目、読み出し時の都合を考えて、切り分け文字を挟んで、一行に纏めます。

83行目から、dataファイルを開き、書き込んで閉じてます。

逆順処理は、他にも方法が有りますが、其れは次回に廻します。

ログの表示
93行目、open(IN,"$data")、61行目に同じ、

98行目、@tempから一行ずつ読み出して、$tempに代入し各変数に振り分けます、localはサブルーチン内において値を保持します。

@tempが空になるまで、続いてしまいますね。



次回は、
エラー処理を含めて、最大保持数、最大表示数、投稿時間の記録、等など、掲示板に近づいていきます。

CGI活用講座、第6回を終了します。

前のページ ページトップ 次のページ
お問い合わせはこちらに、 小生宛のMail
Copyright© 2010 YukisRoom 葵Yuki. All Rights Reserved