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

HTML基礎講座

HTML活用講座

CGI基礎講座

CGI活用講座

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

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

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

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

alphaEDIT

前回の予告どおりに、エラー処理を含めて、最大保持数、最大表示数、投稿時間の記録、を出来るようにしました。

一度に表示出来る件数は、5件に設定、保持するログ数は50に設定、URL以外の未入力にも対応、後は、タグに対応する事、ログの削除機能、レスをつける機能くらいですか?

次のログを表示する機能も必要ですね。

先の機能はこれくらいで、CGIファイルを説明します。

CGIファイル名「katuyou8.cgi」
今回は、コメントをかなり増やしましたので、やっている事は判ると思います。



alphaEDIT

初期設定
CGI.pm及びjcode.plの使用宣言

ログ保存ファイル名、保存ファイル数、表示ファイル数を設定します。

サーバから、現在時刻を読み出して、ログに記録します。

$yearは年ですが、+1900で、年を西暦にあわせます。
sprintfは、数値を文字列に変換するコマンドです。

年・月・日・時・分を組み合わせて、時刻表示を整えます。

出力開始
ここから暫らくは前回と同じです

CGIのヘッダー出力

HTMLのヘッダー出力



alphaEDIT

入力欄
36行目から、print <<"end"分以下、タブを使わずに、ベタ打ちにする事。

表題を「簡易表示板Ver1」に変更しました。

CGIファイル名を「7」に変更、その他変更なし。

data処理
お名前部分をチェックして、ミス送信をチェックしています。

お名前が無いログを記録しない為の処置で、読み出しのみ実施します。

出力終了
こちらが、正常終了時のフッターです。

ここからサブルーチン

sub data書込
ログの保存サブルーチンです。


data取り出し サーバから、各変数に読み出します。


alphaEDIT

日本語code変換
日本語ドメインとかもありますから、総てに、日本語コード変換を設定しています。

入力チェック
入力チェックを加えました、URL以外に入力不備をチェックし、エラーにしました。

ファイルオープン
この書式は、初めて知りました。
!は否定のはず、開けなければエラー表示ですか、これは便利。

<IN>はファイルハンドルを利用して、全文コピーできます。

Record数の取り出しも変わってますね。
此処の変換は、コメント内に改行が入ったままだと、Recordが求まらない為の処理。

"<>"を区切り文字にしよう、KETWEBさんの真似です、しかしこれは便利だ。

unshiftは、先頭に挿入です、これなら逆順処理が不用になる。

ログの書き込み処理、この場合全文上書き保存ですが、追記用に開く事も可能。



alphaEDIT

sub data表示
ここでも開いて読み込んで直ぐに閉じてます。

処理の競合を避ける為にファイルを開いたままにはしません、いずれ、ファイルロックが必要になるでしょう。

ファイル数など常時変化する物として、対応を考える必要が有りますね。

ここでは、現在時刻を同時に記録するようにしています。
書き込み要求があってから時刻を読み出しますから、大丈夫でしょう。

最大表示数で、表示を打ち切る処理。
{ last }が、打ち切り命令です。

ログの表示部分、必要回数繰り返し表示になりますね。
[ } ]の数に注意しましょう。
foreachと、subで、2つ並びます。



alphaEDIT

エラー処理
$_[0]で引数を受け取り、表示して強制終了。
HTMLフッターを出力して、exitで強制終了させてます。

毎回、同じような説明文になりますが、繰り返しが大事なので、もう少しお付き合いくださいね。

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

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