CGI,活用講座、第6回 |
|
今回から、作成編に入ります。
ダウンロード&テストは、
「http://pc-sup.com/sub/index.html」、
旅の思いで写真集「当講座の教材Pageです」
CGI活用講座→第6回に進んでください。
ダウンロードした教材は、アップロード用です、
基礎講座を参考に、Perlのパスをサーバにあわせてください。
|
|
右の図は、ローカル環境でテストした時の物、
4回、断続的に、入力テスト実施後の結果です。
御覧のように、掲示板風になってます。
余り、Perlのコードが大きくならない内に、第6回目とします。 |
|
|
|
CGIファイルです、こちらは、ローカル環境の物です。
ファイル名「katuyou6.cgi」
ダウンロード後に、Perlのパスを書きかえれば同じになります。
では、解説を始めます。
今回から、コメントで区切りを入れましたから、コメント範囲毎に解説します。
1行目はPerlのパス設定、ローカル用はこうなります。
初期設定
ライブラリは、「CGI.pm」と「jcode.pl」を使用します。
今回は、データ記録用に「datafile.log」を使用します。
ファイル名は、ここで設定すれば、何でもOKなんです。
出力開始
CGI.pmによる、ヘッダー部分とタイトル表示、いつも同じです。
入力欄出力
20行目、print <<"end"、"end"の文字が出るまで連続出力。
これは、便利、普通に、HTMLを書いておけば良いから、
過去の財産をコピペでも上手く行きます。 |
|
|
|
27行目で、<textarea>を使ってますが、
rows,colsを指定する以外使い方は似たような物です。
後日、CSSを設定しますから、今は、飾りは一切つけません。
data有無
名前の入力があるか確認して、有れば、記録処理をします。
&付きの名前は、サブルーチン呼び出しです。
36行目、&kakikomi、dataファイルに書き込み処理をします。
38行目、&gprint、dataファイルから読みだして画面表示します。
出力終了
HTMLのフッターを出力します
43行目、exit;、サブルーチンに処理が流れ込まないように、ここで、終了にしてますが、
無くてもいいのかも知れません。
data書き込み
サブルーチンの説明が抜けてますね、失礼しました。
サブルーチンは必要な時に呼び出して実行する物、
これを拡張するとライブラリにも出来ます。
47行目は、36行目からの呼び出しで実行する物、
転送データがあったら、記録ファイルに書き込む処理です。
後日の編集が楽なようにサブルーチン化してあります、
データ取り出し
CGI.pmによる、転送データ取り出しは、この様にします。
日本語コード変換
小生の環境では不要ですが、一般化の為に入れてあります。 |
|
|
|
ファイルオープン
61行目、open(IN,"<$data");、dataファイルを入力用に開いています。
「IN」をファイルハンドルと呼ぶようです、
大文字基準なようですが、何でも良いようですね、
使い方は見たとおり、開いて、読み出して、閉じて置く、これですね。
小生は色々な言語でプログラミングしますが、データベース以外はこの方式で使います。
70行目、コメント中の改行は記録・読出の邪魔なので、半角スペースに変換しておきます。
74行目、読み出し時の都合を考えて、切り分け文字を挟んで、一行に纏めます。
83行目から、dataファイルを開き、書き込んで閉じてます。
逆順処理は、他にも方法が有りますが、其れは次回に廻します。
data表示
93行目、open(IN,"$data")、61行目に同じ、
98行目、@tempから一行ずつ読み出して、$tempに代入し各変数に振り分けます、
localはサブルーチン内において値を保持します。
@tempが空になるまで、続いてしまいますね。 |
|
|
|
次回は、
エラー処理を含めて、最大保持数、最大表示数、投稿時間の記録、等など、
掲示板に近づいていきます。
|
|
CGI活用講座、第6回を終了します。
|