新規会員登録機能を作成する(3/3)[メール認証][本登録]

2016年2月28日

PHP

メール認証を利用した新規会員登録機能を作成します。今回は最後の3回目で、前回の記事に引き継ぎ会員の本登録部分を実装していきます。

 

前回記事

新規会員登録機能を作成する(1/3)

 

新規会員登録機能を作成する(2/3)

 

デモ画面(※デモでは実際にメール等は送られません。)

 

 

スポンサーリンク

 

 

新規会員登録概要

 

最終回は上記のイラストにおいて、手順3・4の会員本登録機能を実装していきます。

 

3 会員登録フォーム(registration_form.php)

   会員登録確認(registration_check.php)

4 会員登録完了(registration_insert.php)

 

 

まず、本登録用のmemberテーブルを準備します。

 

memberテーブル

 

member

 

アカウント・メールアドレス・パスワード(ハッシュ化したパスワード)を保存します。flagに関しては今回は特に利用しませんが、デフォルトで1が自動入力されます。

 

 

registration_form.php(会員登録フォーム)

 

7・8行目

クロスサイトリクエストフォージェリ(CSRF)については以下の関連ページをご参照下さい。

クロスサイトリクエストフォージェリ(CSRF)[トークン]

 

11行目

クリックジャッキング対策については以下の関連ページをご参照下さい。

クリックジャッキング[X-FRAME-OPTIONS]

 

14・15行目

データベースの接続を行っています。db.phpは本ページの下記に記載しています。

 

35行目

GETメソッドで取得したトークン(urltoken)を元に仮登録(pre_memberテーブル)のデータを検索しています。その際に、仮登録が24時間以内でありflagが0(まだ本登録していない)の条件を指定しています。

 

 

registration_check.php(会員登録確認)

 

※今回は、同じアカウント名でも登録できるようになっています。もし同じアカウント名をはじく場合は、アカウント入力判定の部分でmemberテーブルを検索する必要があります。

 

 

registration_insert.php(会員登録完了)

 

31行目

パスワードをハッシュ化してデータベースに保存します。ハッシュ化については以下の関連ページをご参照下さい。

 

ハッシュ関数について/password_hash()を利用する

 

34〜81行目

会員データを本登録であるmemberテーブルに入力し、それと同時に仮登録であるpre_memberテーブルのflagを1にしています。この二つの操作はトランザクションによって制御されています。トランザクションについては以下の関連ページをご参加下さい。

 

PDOでトランザクション処理を行う[beginTransaction]

 

pre_memberテーブルでflagを1にする。

仮登録flag1

 

memberテーブル

本登録

 

73行目

本登録が完了したら、完了通知のメールをユーザに送りますが、今回は実装していません。

 

 

db.php(データベース接続)

 

4〜6行目

環境に合わせて適当な値を設定して下さい。

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー