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

プログラミング・PHP学習

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

今回は、MySQLへの登録機能付きの確認画面の作り方を解説します。

実際のサイトは、下記にあります。

前回までの記事は、下記の目次からご覧ください。

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

ではMySQLへの登録機能付きの確認画面を作っていきましょう。

前回までと同様、CSSと画像登録部分は省き、簡易版を作っていきます。

作成するサイトの外見は次のようになります。

コードはこちらです。

【test3.php】

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

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

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

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

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

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

最初にエクスクラメーションマーク【!】をつけると、「~がなければ」という意味になります。

!isset(・・・)  【・・・がなければ】という条件式になる
じゅんこ
じゅんこ

ビックリマーク!は否定の意味。

「ありえな~い!」と覚えておくと便利ですよ。

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

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

この【$hash】をMySQLに登録します。これは、ポイント③で解説します。

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

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

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

今回は、現在よく使用されているpassword_hash という関数を使ってハッシュ化しました。

password_hashを使うと、同じパスワードを入力しても、違う値に変換されます。

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

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

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

「【$_POST】の値がカラでなければ、MySQLの【members】というデータベースに、【name】【email】【password】の値を挿入する準備をしてね。時間は今現在のものを挿入してね。」

という意味になります。

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

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

MySQLにデータを挿入するときの書き方:
$変数名->prepare(‘INSERT INTO データベース名 SET 項目名1=?, 項目名2=?’)

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

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

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

こんなふうに書いておくと、登録フォームに入力した値を確認画面に表示させることができます。

name以外の部分でも、同じように記述しておきましょう。

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

今回は、次のようにしておきました。

じゅんこ
じゅんこ

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

初心者でも知っておくべき3つの攻撃と対策は、こちらをチェック。

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

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

まずは、前回・前々回に作った会員登録ページのPHPコードを書く部分に、次の命令文を追加しておきましょう。

「もし【$_SESSION[‘join’]】があって、さらに【REQUEST[‘action’]】が送られてきて、そしてこの値がrewrite だったら、【$_SESSION[‘join’]】の内容をフォームに登録してね」という意味になります。

次に、今回作成している確認ページに入れるために、次のように記述してボタンを設置します。

こんな見栄えのボタンができます。

ボタンをクリックすると登録フォームに戻ります。

URLは「test.php?action=rewrite」となっています。入力した内容がちゃんと入っています。

このような設定をしておかないと、ユーザーが「修正する」ボタンをおして戻った場合、いちからフォームに情報を入力せねばなりません。

面倒なですよね。

上記のように設定しておけば、ユーザーが戻ったときに、入力した値がきちんと保存されています。

さいごに

無事登録ができると、MySQLに情報が入っているはずです。

登録後、データベースをチェックしてみてくださいね。

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

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

コメント

タイトルとURLをコピーしました