当サイト使用テーマ

\ SWELL【WordPressテーマ】 /
当サイト使用サーバー

\ レンタルサーバー【ConoHa WING】 /
プログラミング学習
この記事では、簡単な掲示板サイトを作りながらPHPの勉強をしていきます。できる限り分かりやすく説明していきますが、分かりにくい箇所があれば気軽にコメントしてください。
まだPHPの環境設定ができていない方は↓を参考にしてみてください。
複雑なコードやコーディング量が多いと難易度が上がってしまうため、今回はHTMLとPHPのコードのみで掲示板サイトを作成しています。そのため出来上がりの感じがシンプルすぎるものになっていますが、続編でCSSやJavaScriptも使用して装飾していきたいと思っています。
<?php | |
//タイムゾーンを東京に設定 | |
date_default_timezone_set('Asia/Tokyo'); | |
//投稿データの格納用 | |
$posts = array(); | |
//エラーの格納用 | |
$error = array(); | |
//データベース接続 | |
try { | |
$dbh = new PDO('mysql:host=127.0.0.1;dbname=bbs', 'root', ''); | |
}catch(PDOException $e){ | |
echo 'DB接続エラー:' . $e->getMessage(); | |
} | |
//フォームを送信したとき | |
if(!empty($_POST['submitButton'])){ | |
//名前のチェック | |
if(empty($_POST['username'])){ | |
$error['username'] = 'error'; | |
} | |
//コメントのチェック | |
if(empty($_POST['comment'])){ | |
$error['comment'] = 'error'; | |
} | |
if(empty($error)){ | |
$postDate = date('Y-m-d H:i:s'); | |
try { | |
$stmt = $dbh->prepare("INSERT INTO `bbs-table` (`username`, `comment`, `postDate`) VALUES (:username, :comment, :postDate)"); | |
$stmt->bindParam(':username', $_POST['username'], PDO::PARAM_STR); | |
$stmt->bindParam(':comment', $_POST['comment'], PDO::PARAM_STR); | |
$stmt->bindParam(':postDate', $postDate, PDO::PARAM_STR); | |
$stmt->execute(); | |
}catch(PDOException $e){ | |
echo 'DBへの書き込みエラー:' . $e->getMessage(); | |
} | |
} | |
} | |
//DBからコメントデータを取得する | |
$posts = $dbh->prepare('SELECT `id`, `username`, `comment`, `postDate` FROM `bbs-table`'); | |
$posts->execute(); | |
//htmlspecialcharsのショートカット | |
function h($value) { | |
return htmlspecialchars($value, ENT_QUOTES); | |
} | |
//DBの接続を閉じる | |
$dbh = null | |
?> | |
<!DOCTYPE html> | |
<html lang="ja"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>掲示板</title> | |
</head> | |
<body> | |
<h1>掲示板</h1> | |
<hr> | |
<section> | |
<?php foreach($posts as $post): ?> | |
<article> | |
<p>名前 : <?php echo h($post["username"]); ?></p> | |
<p><?php echo h($post["comment"]); ?></p> | |
<time><?php echo h($post["postDate"]); ?></time> | |
</article> | |
<?php endforeach; ?> | |
</section> | |
<form method="post"> | |
<div> | |
<label for="">名前 : </label> | |
<input type="text" name="username"> | |
</div> | |
<div> | |
<textarea name="comment"></textarea> | |
</div> | |
<div> | |
<input type="submit" value="書き込む" name="submitButton"> | |
</div> | |
</form> | |
</body> | |
</html> |
XAMPPコントロールパネルを起動して、ApacheとMySQLを起動しましょう。
ApacheとMySQLを起動したらAdminをクリックしてphpMyAdminを開きましょう。
↓の画面が表示されれば大丈夫です!
エクスプローラーを開いて、Windows(C:) → xampp → htdocs と進み、htdocsフォルダの中に今回作成するbbsフォルダを作りましょう。
bbsフォルダを作成したらVSCodeを開き、ファイル → フォルダーを開く でbbsフォルダを開きましょう。
まずは、HTML部分を作っていきます。PHPのコードを書くにはファイルの拡張子をphpにする必要がありますが、まだHTMLのコードしか書かないので拡張子はhtmlにしておきましょう。
htmlファイルにしておくことでコーディング中の予測変換など補佐機能がありコードが打ちやすいです。
↓のHTMLコードを入力しましょう。
<!DOCTYPE html> | |
<html lang="ja"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>掲示板</title> | |
</head> | |
<body> | |
<h1>掲示板</h1> | |
<hr> | |
<section> | |
<article> | |
<p>名前 : A</p> | |
<p>おはようございます</p> | |
<time>2023-8-12 23:09:30</time> | |
</article> | |
</section> | |
<form method="post"> | |
<div> | |
<label for="">名前 : </label> | |
<input type="text" name="username"> | |
</div> | |
<div> | |
<textarea name="comment"></textarea> | |
</div> | |
<div> | |
<input type="submit" value="書き込む" name="submitButton"> | |
</div> | |
</form> | |
</body> | |
</html> |
<section>掲示板の投稿全体を表す中に<article>個々の投稿を入れ、ユーザーが書き込みを行うと<article>がどんどん増えていきます。
phpMyAdminを開いてデータベースの作成をしていきます。
ここからPHPのコーディングをしていくのでindex.htmlファイルをindex.phpファイルに変更しましょう。
index.htmlファイルの上でマウスを右クリックすると↓の写真のように名前を変更…が出てきます。
以上で全工程が終わり、完成しました。