【 掲示板の仕様 】

1. ログファイルのフォーマット
2. 画面構成
3. 設定ファイル
4. ロック処理
5. メインスクリプト
6. 表示用 HTML テキスト
7. ログファイルの処理

テキストファイル
  • CSV 形式のテキストファイルとする

  • 一回の投稿データを 1 行のデータとして保存する

  • フィールドとフィールドの区切り文字は、カンマ ( 0x2c ) とする

  • フィールド内にセットするデータは、カンマ ( 0x2c ) を , に置き換える

  • フィールド内にセットするデータは、改行コードを <BR> に置き換える

  • 漢字データは Shift_JIS を使用する


  •   フィールド名称 仕様
    1
    更新日付
    エンドユーザが容易に読む事のできる投稿時の日付
    と時間、またはその他の情報を示す任意の文字列
    2
    ユーザ名
    ユーザが入力した名称
    3
    タイトル
    本文のタイトル
    4
    本文
    テキストエリアより入力される本文。改行コードは
    <BR> に変換する


      分類 内容
    1
    ヘッダ
    HTML として必要なヘッダ部分と、アプリとしての
    ヘッダ部分
    2
    入力
    入力部分
    3
    ログ
    ログデータ表示
    4
    フッター
    各ページへのリンク及びアプリとしてのフッターと
    デバッグ表示


    ini 形式の使用
  • セクションは用いませんが、KEY=値 形式のデータを、拡張子 ini の
    ファイルに用意します

  • 値に "=" が含まれる事を禁じます


  • 空行と、行の先頭に ";" のある行は無視されます。これは、一般的な仕様です

  • テスト用に最大数は小さくしています
  • ; ログファイルの最大行、この値を超えると過去ログへと移動
    INI_MAXROW=10
     
    ; ページ毎の行数
    INI_ROWPERPAGE=5
     
    ; ログファイル名
    INI_LOGFILE=logfile.csv
     
    ; 過去ログ1ファイルの最大件数
    INI_PASTMAXROW=5
     
    ; LOCK 関数のリトライ回数
    INI_LOCKCNT=3
     
    ; LOCK 用ディレクトリ名
    INI_LOCKDIR=lock
     
    ; 過去ログ用ディレクトリ
    INI_PASTDIR=past
    


    ディレクトリへのアクセス
  • ファイルシステムでロックしようとする場合、「作成処理」が成功するかどうか
    でロックの権利を得るのが最も簡単です

  • ディレクトリの作成処理と削除処理を利用します


  • bbs.拡張子
  • アプリケーションの全体を見渡せるようにします

  • 細かな処理は記述しません


  • ヘッダ用
  • <HTML>
    <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS">
    </HEAD>
    <BODY>
    


  • 入力用
  • <FORM name="frm" method="post">
    	<TABLE border="0" width=400>
    		<TR>
    			<TD>名前</TD>
    			<TD width=300>
    				<INPUT
    					type="text"
    					name="UserName"
    				>
    			</TD>
    		</TR>
    		<TR>
    			<TD>タイトル</TD>
    			<TD><INPUT type="text" name="Title"></TD>
    		</TR>
    		<TR>
    			<TD colspan=2>
    				<TEXTAREA name="Message" cols="60" rows="10"></TEXTAREA>
    			</TD>
    		</TR>
    		<TR>
    			<TD colspan=2>
    				<INPUT type=submit name="send" value="登録">
    			</TD>
    		</TR>
    	</TABLE>
    </FORM>
    <HR size="1" color="silver">
    


  • フッター用
  • </BODY>
    </HTML>
    

    カレントログファイル
  • カレントのログファイルは、最大件数の設定数のレコードを持つ

  • 先頭データが最も新しい

  • 制限を超えると、過去ログファイルへ最も古い( 最後の行 ) レコード
    が移動される


  • 過去ログファイル
  • 過去ログファイルは、最大件数の設定数のレコードを持つ

  • 先頭データが最も新しい

  • 制限を超えると、その過去ログファイルは使用されずに日付・時刻
    によるファイル名を持つ新しいファイルが作成されてそちらに書き込
    まれる