PHPで掲示板を作成してみる事にしました。
掲示板のソフトは、秀逸なフリーソフトがいくらでもありますので、そちらをダウンロードさせていただく方が手間も掛からず、機能も豊富なので無駄な努力のように思えます。
確かにその通りかも知れませんが、いつまでも他人ばかりを頼っていたのでは、その人の成長はそこで止まってしまいます。
ここでは、奮起してPHPの勉強も兼ねてやって見る事にします。

そうは言っても、全くの0からでは厳しいので参考サイトを探して見ました。
PHPとMySQLで掲示板を作る さんのサイトが見つかりました。
作成は簡単そうに見えましたが、中々しっかりとしているようですし、何と言っても、製作方法の解説サイトなのでフリーソフトのように著作権の表示を義務づけられたりしていない点が良いです。
これなら自分の好みに自由に変える事も出来ます。
最初にデータベースの登録とテーブルの作成を行います。
データベース名は、Mybbs とか適当な名前で良いでしょう、
この部分は、MySQL から直接行いました。
データベースの作成は、create database Mybbs; とコマンドします。(データベース名が Mybbs の場合)
データベースが作成されたのかどうかは、 show databases; で確認出来ます。
念のため、テーブルの作成部分だけは以下に記載しておきます。


mysql> create table board (

    -> boardid varchar(32) primary key,

    -> name varchar(128),

    -> defaultrange integer,

    -> defaultrangeindex integer,

    -> defaultrangethread integer,

    -> homepage varchar(128),

    -> css varchar(64),

    -> showmessagephp varchar(64));

Query OK, 0 rows affected (0.11 sec)



mysql> show tables

    -> ;

+---------------+

| Tables_in_BBS |

+---------------+

| board         |

+---------------+

1 row in set (0.00 sec)



mysql> create table message (

    ->   serialid integer,

    ->   boardid varchar(32),

    ->   posteddate timestamp,

    ->   name varchar(64),

    ->   mailaddress varchar(64),

    ->   url varchar(64),

    ->   subject varchar(128),

    ->   message text,

    ->   altermessage text,

    ->   password varchar(64),

    ->   preformatted bool,

    ->   deleted bool,

    ->   parent integer,

    ->   top integer,

    ->   ipaddress varchar(32),

    ->   remotehost varchar(64),

    ->   useragent varchar(64),

    ->   primary key (serialid, boardid)

    -> );

Query OK, 0 rows affected (0.02 sec)



mysql> show tables;

+---------------+

| Tables_in_BBS |

+---------------+

| board         |

| message       |

+---------------+

2 rows in set (0.00 sec)



mysql> exit

Bye

[root@meckk ~]#

解説サイトの内容のままで作成しました。
その方が無用なトラブルを避ける事が出来ると思ったからです。


データベースとテーブルの作成が終わりましたので、掲示板を作成するための html を作成します。
こちらの内容は以下の通りです。


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

<link rel="STYLESHEET" TITLE="default" TYPE="text/css" href="./admin.css">

<title>新しい掲示板の作成</title>

</head>

<body>

<form action="newbbs.php" method="POST">

<h1>新しい掲示板の作成</h1>

<div align="center">

<table>

<tr>

  <td>掲示板名</td>

  <td><input type="text" name="boardname" size="30">

</tr>

<tr>

  <td>掲示板ID</td>

  <td><input type="text" name="boardid" size="30">

</tr>

<tr>

  <td>ページあたり表示件数</td>

  <td><input type="text" name="defaultrange" size="30">

</tr>

<tr>

  <td>ページあたり表示件数(インデックス)</td>

  <td><input type="text" name="defaultrangeindex" size="30">

</tr>

<tr>

  <td>ページあたり表示件数(スレッド)</td>

  <td><input type="text" name="defaultrangethread" size="30">

</tr>

<tr>

  <td>開設者ホームページ</td>

  <td><input type="text" name="homepage" size="30">

</tr>

<tr>

  <td>スタイルシート</td>

  <td><input type="text" name="css" size="30" value="./bbs.css">

</tr>

<tr>

  <td>メッセージ表示PHP</td>

  <td><input type="text" name="showmessagephp" size="30" value="./showmessage.php">

</tr>

<tr>

</tr>

</table>

<input type="submit" value="送信">

</div>

</form>

</body>

変更点は、charset=Shift_JIS ぐらいで他は一緒です。


newbbs.phpの中身は以下の通りです。


<?php

require '../connect_db.php';

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">

<link rel="STYLESHEET" TITLE="default" TYPE="text/css" href="./admin.css">

<title>新しい掲示板の作成</title>

</head>

<body>

<?php

if ($_POST["boardname"] == ""

    || $_POST["boardid"] == ""

    || $_POST["defaultrange"] == ""

    || $_POST["defaultrangeindex"] == ""

    || $_POST["defaultrangethread"] == ""

    || $_POST["homepage"] == ""

    || $_POST["css"] == ""

    || $_POST["showmessagephp"] == "" ) {

  die("全ての項目を入力してください");

}

$sql_str = "insert into board (name, boardid, defaultrange, defaultrangeindex, defaultrangethread, homepage, css, showmessagephp) ";

$sql_str .= sprintf("value ('%s', '%s', %d, %d, %d, '%s', '%s', '%s')",

                    $_POST["boardname"],

                    $_POST["boardid"],

                    $_POST["defaultrange"],

                    $_POST["defaultrangeindex"],

                    $_POST["defaultrangethread"],

                    $_POST["homepage"],

                    $_POST["css"],

                    $_POST["showmessagephp"]);

mysql_query($sql_str, $dbh)

  or die('SQLエラー..'.$sql_str);

?>

<p>

掲示板「

<?= htmlspecialchars(stripslashes($_POST["boardname"]))?>

」の作成が終了しました。

</p>

</body>

</html>

若干変更している部分がありますが、基本的には同じはずです。
HTML で記載するために、動作しているソフトの内容そのままコピーしている訳ではありませんので御注意願います。(記載ミスがあるかも知れません)
エラーがある場合は、画面上に表示されますので、デバッグは容易でしょう。


尚、connect_db.phpの中身は、以下の通りです。


<?php

$dbh=mysql_connect("localhost", "ユーザ名", 'パスワード')

  or die('I cannot connect to the database because: ' . mysql_error());

mysql_select_db ("データベース名");

?>