PHPプログラミング

ワークショップ

ひと言掲示板を作る

ひと言掲示板を作る

ひと言メッセージを書き込むことができる簡単な掲示板をPHPで作っていきます。

この記事のポイント

  • シンプルな機能の掲示板を作る
  • 掲示板の仕様と開発環境を確認
  • 作成の全体的な流れが分かる

目次

シンプルな掲示板を作る

ユーザーが簡単なメッセージを残すことのできる、シンプルな「ひと言掲示板」を作っていきます。
デモはこちら

ひと言掲示板の完成イメージ

機能は非常にシンプルですが、掲示板の作成はPHPプログラミングの基礎的なテクニックを幅広く活用することができます。
完成したときには次のような操作をプログラミングできるようになります。

  • POST通信によるデータ送信
  • ユーザーに入力されたデータのバリデーション&サニタイズ
  • ファイルの読み込み/書き込み
  • データベースの基本的な操作
  • セッションの管理
  • データのCSVファイル出力

今回は、これから作っていく掲示板の仕様や開発環境を紹介していきます。

ひと言掲示板の仕様と開発環境

これから作る「ひと言掲示板」には次のような機能を実装します。

  • 「表示名」と「ひと言メッセージ」を入力して自由に書き込む
  • 誰かが書いたひと言メッセージを読む
  • セッションを使って表示名の入力を省略する
  • 掲示板を管理するページから投稿を編集・削除する
  • 投稿データをCSV形式でダウンロードする

今回は匿名による投稿のみ受け付ける形にし、誰かの投稿に返信する機能もややシステムが複雑になってしまうためつけません。

開発環境

掲示板は次の環境で構築・動作確認を行っております。

  • Apache v2.4.6
  • PHP v7.3.3
  • MariaDB v10.4.3

掲示板のシステム自体はPHPやMariaDBの最新バージョンにある機能をガシガシ使うというよりも、基礎的な機能を活用して構築していきます。
そのため、多少バージョンが古い環境でも動作します。

ただし、実際の開発でも公式サポートが終了したバージョンは使用を避けることが多く、特にバージョンの更新が活発なPHPなどは注意が必要です。
執筆時点ではセキュリティサポートが終了していないのはバージョン7.1以上になるため、もし開発環境を選べるのであればこのバージョン以上での開発を推奨します。

作成の流れ

これから何回かに分けてひと言掲示板を作成していきますが、どのような流れで進めていくのかを紹介します。

1. 投稿フォームを作成

なにはともあれ、掲示板にはメッセージを投稿する仕組みがあることが大原則です。
そこでまずは、メッセージを入力するフォームから作成します。
ここのページではフォームの基本的なパーツとなるHTMLから作成します。

2. メッセージのデータ送信

前章で作成したフォームに入力されたメッセージをデータとして送信し、さらにPHPでデータを受信できるようにします。
データの受け渡しの基礎となる部分はここで実装します。

3. ファイルへの書き込み

受信したメッセージのデータを、テキストファイルに書き込んでデータとして保存します。

4. ファイルの読み込み

テキストファイルに保存したデータを読み込み、掲示板に今まで投稿されたメッセージをすべて表示します。

5. 投稿完了メッセージを表示する

メッセージを投稿したユーザーに、無事投稿できたことを知らせるためのメッセージを表示します。

6. 未入力バリデーション

メッセージを投稿したときに、必要な情報がすべて入力されているかを自動的に確認する機能を実装します。

7. 入力データのサニタイズ

メッセージにJavaScriptなどのプログラムコードが紛れていたときに無効化できるよう、データのサニタイズ(コードの無効化)を実装します。

8. データベースの利用に切り替える

ここまではデータの保存にテキストファイルを使用してきましたが、より多くのデータを効率良く管理できるようにデータベースの使用に切り替えていきます。
データベースの管理には「phpMyAdmin」というツールを使います。

9. テーブル作成

phpMyAdminを使って、データベースにデータが入る器となる「テーブル」を作成します。

10. データ登録

フォームに入力されメッセージを、データベースにデータとして登録されるようにシステムを修正します。

11. データの読み込み

データベースからデータを読み込んで、掲示板にメッセージを表示します。

12. セッションでユーザー管理

掲示板に書き込んだことのあるユーザーが、2回目以降に入力を楽にできるようにセッションを使ってアクセス履歴を管理できるようにします。

13. アクセスの度にセッションの有効期限を更新する

掲示板にアクセスする度にセッションの有効期限を更新して、ユーザーがセッションを使う時間を自動的に延長できるようにします。

14. 管理ページの作成

ここからは、ひと言掲示板を管理する人のためのページを作成します。
ここでは管理画面でできることと、ページの構成を紹介していきます。

15. ログインページ作成

管理ページの入口となるログインページを作成します。

16. 投稿データのダウンロード

今までに投稿されたメッセージをCSV形式のファイルとしてダウンロードできるようにします。

17. ダウンロードのカスタマイズ

ダウンロード機能に、取得するデータの件数を指定する機能を実装します。

18. 投稿の編集

管理ページから特定の投稿を編集する機能を用意します。

19. 投稿の削除

投稿の編集機能に続いて、投稿を削除する機能を用意します。

以上が全体の構成になります。
機能をできる限り細かく分けているためページ数は多いですが、1つずつステップアップするようなイメージで掲示板を作っていけるようにしています。

もし作っていて分からないことやお気付きの点がありましたら、各ページの下部にある「Good」「Bad」ボタンからメッセージを送っていただくか、お問い合わせフォームよりお気軽にご連絡ください。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

ありがとうございます。
コメントを送信しました。