PHP で掲示板制作

PHPで掲示板制作タイトルイメージ

PHP で掲示板を制作する

PHP開発環境がない場合は「 AlmaLinux8.6, PHP8.1, MySQL8, Apache 」で LAMP 環境を構築後に実施。



練習1 : 掲示板システム制作

掲示板システムフロー

サーバーに練習用の DB と掲示板テーブルを作成

# mysql -u root -p
Enter password: (パスワード入力)


▼ DB practice を作成

mysql> CREATE DATABASE practice;


▼ DB practice に移動

mysql> use practice;


▼ t_board テーブルを作成

mysql> CREATE TABLE t_board(
id SERIAL PRIMARY KEY,
name VARCHAR(20),
comment TEXT NOT NULL,
registed TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);


▼ サンプルデータを登録

mysql> INSERT INTO t_board (name, comment) VALUES ('kato', 'comment1');
mysql> INSERT INTO t_board (name, comment) VALUES ('tajima', 'comment2');


▼ サンプルデータを確認

mysql> SELECT * FROM t_board;
+----+--------+----------+---------------------+
| id | name   | comment  | registed
+----+--------+----------+---------------------+
| 1  | kato   | comment1 | 2021-12-21 22:12:10
| 2  | tajima | comment2 | 2021-12-21 22:12:20
+----+--------+----------+---------------------+


▼ DB と接続しサンプルデータを取得、表示

board.php

  • SELECT ... ORDER BY id DESC : id 降順ソート
  • htmlspecialchars((string)$data['name'], ... : NULL -> 文字列キャスト(PHP8.1 E_DEPRECATED 対策)

(ブラウザ表示)


▼ DB にデータ登録

board_entry.php

(登録後の表示)


▼ 掲示板システム動作テスト項目

  • コメントの改行表示
  • XSS、CSRF 対策

ポイント

  • XSS、CSRF 対策
  • SELECT ... ORDER BY id DESC : id 降順ソート
  • htmlspecialchars((string)$data['name'], ... : NULL -> 文字列キャスト(PHP8.1 E_DEPRECATED 対策)