PHPとMySQLを使った掲示板の作り方を初心者向けにコード付き解説4【確認画面】

PHPで掲示板作成

PHPとMySQLを使って掲示板サイトを作ってみる講座、4回目です。

今回は、フォーム送信後の確認画面の作り方を解説します。

次のような確認画面を作ります。

「どんな掲示板ができるのかな。」と思ったら、下記の紹介動画をクリックしてくださいね。

↓↓↓

なお記事では掲示板に必要なコードはご紹介しますが、デザイン部分は省略しています。

デザイン部分も含めた形で、GitHubにコード公開しています。全体のコードを見たい時に、参考にしてください。

GitHubを見てみる

いいなと思ったら、GitHub右上のStarボタン、クリックしてもらえると、嬉しいです。

前回までの内容

掲示板作成の7ステップの目次と概要はこちらをご覧ください。

会員登録フォーム投稿後の確認画面を作成する

では確認画面を作っていきましょう。

まずはC:\xampp\htdocs\register.phpに下記コードを追加します。

【C:\xampp\htdocs\forum\register.php】

これによって、フォーム送信後にconfirm.phpファイルに処理が受け渡されます。

次に、このconfirm.phpを作っていきましょう。C:\xampp\htdocs\forumの中に、confirm.phpファイルを作成します。この中に、下記コードを追加します。

【C:\xampp\htdocs\forum\confirm.php】

★ポイント★ごとにコードの組み方を解説していきます。

ポイント① セッション情報を設定する

ポイント①の部分は、前回からのセッション情報があるかどうかをチェックしています。

「もし$_SESSION[‘join’]がなければ、register.phpに戻ってね。このページは終わりにしてね。」という命令文になります。

【isset()】は、カッコ内の値があるかどうかを確認する関数です。

【Location】の後は、前のページのURLなどを設定しておきましょう。

最初にエクスクラメーションマーク【!】をつけると、「~がなければ」という意味になります。これも覚えておくと便利ですよ。

ポイント② パスワードをセキュアにする

入力したパスワードをpassword_hashで変換し、【$hash】変数に格納しておきます。

この$hashをデータベース登録します。ポイント③で説明していきます。

なおパスワードは、以前は【sha1】で暗号化していました。

ですがsha1は同じパスワードを打てば毎回同じ値に変換されてしまい、脆弱性が指摘されてきました。

そのため最近では、あまり使われなくなっています。

今回は、password_hash という関数を使ってハッシュ化しました。password_hashを使うと、同じパスワードを入力しても、違う値に変換されます。

password_hash  パスワードをハッシュ化

ポイント③ 入力されたデータを登録する

入力されたデータを、データベースに登録するには、次のように記述します。

$statementの部分は、「$_POSTの値が空でなければ、membersテーブルに、【name】【email】【password】の値を挿入する準備をしてね。時間は今現在のものを挿入してね。」という意味になります。

その後、array関数を使いつつ、挿入する値をひとつずつ指定しています。

ポイント②で解説した変数 $hash は、そのままの形でいれていきます。

ポイント④ 入力された値を表示させる

ポイント④からは、bodyタグ以降の部分です。

ここでは、htmlspecialchars関数を使っています。

「$_SESSION[‘join’][‘name’]の値を表示してね」という意味になります。

htmlspecialchars関数が入っていますが、これはセキュリティ対策のために行っています。

こう書くことで、【<】 や 【>】といったカッコをコードではなく文字列として処理してくれます。

これによって、悪意あるユーザーがフォームの中にへんなコードを入力しても、このコードが実行されることを防げるのです。

書き方としては次のようにします。

htmlspecialchars (変換対象, ENT_QUOTES)

この関数をつけないと、どんなリスクがあるかは、PHPのセキュリティリスクを解説した記事で説明しています。

なおパスワードについては、セキュリティ上の理由から、あえて表示させないほうが一般的なので、今回は、次のようにしておきました。

Webアプリは攻撃されやすいだけに、セキュリティが非常に大事です。

色々対策をしていきましょう。

ポイント⑤ 前のページに戻れる設定をする

最後のポイントは、登録フォームに戻るための設定です。

次のように記述してボタンを設置します。

確認画面に、下記のように【修正する】【登録する】のボタンを設置できます。

修正するをクリックすると、register.php?action=rewriteに処理が受け渡されます。registration.phpファイルに下記コードを加えておきましょう。

【C:\xampp\htdocs\forum\registration.php】

これによって、修正するボタンをおした時に、これまで入力していた値が入った状態で登録フォームが表示されます。

もしこのコードがなければ、ユーザーはもう一度、いちから名前等の情報を入力しなければいけません。手間が増えてしまいますよね。そうならないようにコードを入れました。

Webアプリを作る時は、ユーザー目線をもって、作っていきましょう♪

なお、【登録する】をクリックすると、confirm.phpファイルの上部で、次のコードで指定しているため、login.phpへ処理が受け渡されます。
【C:\xampp\htdocs\forum\confirm.php】

テスト

今の段階で一度、テストしてみましょう。

XAMPPを起動した状態で、下記のURLを開きます。

http://localhost/forum/register.php

フォームに値をいれて、送信します。すると、次のように、確認画面が表示されます。

修正するボタンをクリックすると、再度、入力画面になります。このとき、入力した値が残っています。URLも下記のようになっていることを、確認しておきましょう。

なお、登録後はlogin.php画面になりますが、まだこのページができていないので、エラーになります。

さいごに

無事登録ができると、データベースforumのmembersテーブルに、ユーザー情報が入っているはずです。登録後、データベースをチェックしてみてくださいね。

今回までで、会員登録画面の作成は終わりになります。

次回は、登録した情報を使ったログイン画面を作っていきます。

PHPで掲示板作成
【AWS関連・Webアプリ開発・生成AIのAPI活用のご相談承ってます】
お気軽にお声がけください。
御社にとって、最善の方法をご一緒に考えてまいります。
Zoomミーティング実施中。サンプルアプリご利用可能です。

お問合せフォーム

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

最新版Laravel11用のサポートガイドご用意しています。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

【おすすめレンタルサーバー】

「Webアプリを本番環境に反映させたい」

場合には、レンタルサーバーを使うのが手軽です。

わたしはエックスサーバーをメインに使ってます。
早くて安定していて、おすすめです♪



Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました