シンプル掲示板ソース解説 prev Page next Page

シンプル掲示板 は2つのファイルから構成される(ソースダウンロード)。
ひとつはサーバからクライアントサイドに転送され、クライアントサイドで実行される JavaScript フロントエンドプログラムを含む HTMLファイル(simpleBBS_JQ.html)と、
そのクライアント側プログラムからの要求に応じて、サーバサイドでバックエンド処理を行う PHP プログラム(svr_simpleBBS.php)の2つだ。
まずは、簡単なサーバサイドのPHPプログラムから見ていこう

サーバサイドのバックエンド処理

PHP プログラムは act 引数で処理を識別する。指定可能なのは "getCommentList" と "postComment" の2つだけ。
前者はDBから最大50個のコメントを取り出し、JSON 形式でクライアントに渡す。
後者は投稿者名、投稿文書を引数にとり、それをDBに格納する。
コメントを格納するためのテーブルは以下のような単純な構造を持つ
┌───────────┐
│simple_bbs      │
├───────────┤
│id : serial      │ // シリアル番号(1..*)
│name : text      │ // 投稿者名
│body : text      │ // コメントテキスト
│date_time : timestamp │ // 投稿日付時刻
└───────────┘
コメントリストを取り出すには "select * from simple_bbs order by id desc limit 50" というSQL文[1]を実行し、結果を JSON 形式に変換して出力すればよい。
コメントの情報は {ID:<id番号>, DATE_TIME:'<投稿日付時刻>', NAME:'<投稿者名>', BODY:'<本文内容>'} というフォーマットとしている。
これは JOSN と呼ばれる、JavaScript のオブジェクトの表記方法である。
テキストに ' が含まれている場合のために、addSlashes() を呼んでいる。
改行は \r は削除し、\n は "\n" という文字列に変換しておく。
フロントエンドの JavaScript プログラムは、この文字列を受け取り、コメント一覧を表示する。

コメントの登録も単純だ。引数を $_REQUEST[] で[2]取り出し、addSlashes() で ' 等をエスケープし、
"insert into simple_bbs(date_time, name, body) values(current_timestamp, '{$name}', '{$comment}')" で、テーブルに新しいレコードを追加する。

クライアント側のフロントエンド処理

(執筆中)


[1] order のキーは id を指定しているが、たまたま同時刻に投稿したコメントがなければ、date_time を使ってもOKだ。
[2] $_POST[] の方が少しましかもしれないが、誰でも読み書きできる掲示板なので、この場合は大差はないだろう

このページへのトラックバックURL: http://vivi.dyndns.org/wtb/275
1,197 page views, page owner : びびすけ
2007/02/23 15:35 modified by びびすけ

( page views in recent 7 days)