|
|
シンプル掲示板 は2つのファイルから構成される(ソースダウンロード)。 サーバサイドのバックエンド処理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
|