こんな悩みを解決します。
PHPで新規会員登録機能を作成するのは難しいと思われがちですが、実はシンプルに作成することが出来ます。
新規会員登録の機能はPHPの基本になるので、早い段階で作れるようになっておいたほうが良いでしょう。
そこで、今回はPHPで新規会員登録機能を作成する方法についての解説です。
本記事を参考にすることで、MySQL(データベース)の基本的な使い方と、PHPを連携してデータのやり取りをする方法について理解できるので、ぜひ最後までご覧ください。
本記事の内容
- PHPで会員登録機能を作成する方法
- MySQLでデータベースを作る方法
- 会員登録機能の全体的な動作の流れ
開発環境
- OS:Windows 7
- ブラウザ:Chrome バージョン: 80.0.3987.149(Official Build) (64 ビット)
- 開発環境:XAMPP v3.2.4
- エディター:Visual Studio Code バージョン:1.43.1
本記事の信頼性
日頃からプログラムを打っており、独学でIT企業へ転職経験あり。
PHPで会員登録機能を実装したい!【誰でも実装可能!】
それでは、PHPで会員登録機能を実装するための全体像を確認してみましょう。
- HTMLでページを作成する
- MySQLでデータベースを作成する
- PHPでログイン認証の処理を作成していく
HTMLで表のページを作成して、データの保存先となるMySQLでデータベースを作成。
最後にPHPを使用して、HTMLで入力された内容をMySQLで作成したデータベースに受け渡すという処理を書いていきます。
また、今回ぼくが作成する会員登録機能については、【PHP】ログイン機能作ってみた【Webアプリ】という『すっきりプログラミング』さんの動画が軸となっているので、興味のある方は他の動画も見てみてください。
HTMLでページを作成する
会員登録機能の表ページになるHTMLのコードは、こちらです。
//signup.php <!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> <form action="" method="POST"> UserName<input type="text" name="username" value=""><br> Password<input type="password" name="password" value=""><br> <input type="submit" name="signup" value="新規登録"> </form> </body> </html>
ご覧の通り、超シンプルな画面構成になっています。
UserNameとPasswordを入力するテキストボックスと新規登録のサブミットボタンがあるのみ。
このソースコードをコピペすると簡素的なフォームが表示されると思うので、簡素な感じが嫌な場合はBootstrapを使ったほうが良いかもしれません。
MySQLでデータベースを作成する
次にMySQL(データベース)についてです。
コマンドラインを開いてからデータベースを作成するまでの流れをざっと一気に書いているので、上から順にコマンドを打ってみてください。
①//mysql にログイン >mysql -u root -p ②//データベースを作成 >create database データベース名; ③//データベースを使用中にする >ues データベース名; ④//作成したデータベースに使用者権限を付ける >grant all on データベース名.* to seita@localhost identified by 'パスワード'; ⑤//MySQLを抜ける >exit; ⑥//権限付与したユーザーでMySQLに再ログイン >mysql -u 作成したユーザー -p password:一個前で設定したパスワードを入力 ⑦//データベースを使用中にする >ues データベース名; ⑧//作成したデータベースにテーブルを作る >create table users ( id int not null auto_increment primary key, username varchar(100) not null, password varchar(255) not null); ⑨//実際にテーブルが上記の内容で作成されているか確認 >desc データベース名;
使用するMySQLのコマンド解説
簡単に流れを解説すると、コマンドラインでMySQLにログインしてデータベースを作成。
データベースを作ったらuseで使うデータベースを指定します。
使うデータベースを指定したら、使用者権限を与えるためにgrant all onで使用者とパスワードを入力。
注意ポイント
ここで入力するパスワードは忘れてしまうとMySQLでログインができなくなってしまうので、必ず最初はメモっておいてください。
次に一度『exit;』を打ち込んでMySQLを抜け、もう一度mysqlコマンドを打ち込んで@localhostの@から前の部分とパスワードを入力します。
無事にログインすることが出来たら、再度useで作成したデータベースを指定。
データベースを指定したら、データ入力用のテーブルを作成していきます。
create table テーブル名でテーブルを作成して、こちらの3行を入力してください。
id int not null auto_increment primary key, username varchar(100) not null, password varchar(255) not null);
idはデータベースにデータが登録された順番で連番が振られるようになっていて、その他にusernameとpasswordが入るカラムを作成しています。
こちらのテーブル情報を入力したら、実際にデータベーステーブルが作成できたか確認するために『desc データベース名;』を打ち込んでみましょう。
このようにテーブルを作成した際の情報が無事に表示されたら、データベースの作成からテーブルの作成まで終了です。
PHPでログイン認証の処理を作成していく
ここからが終盤です。
PHPで実際に打ち込むコードはこちら。
if(isset($_POST['signin'])) { $username = $_POST['username']; $password = $_POST['password']; try { $db = new PDO('mysql:host=localhost; dbname=データベース名','ユーザー名','パスワード'); $sql = 'insert into テーブル名(username,password) values(?,?)'; $stmt = $db->prepare($sql); $stmt->execute(array($username,$password)); $stmt = null; $db = null; header('Location: http://localhost/◯◯/'); exit; }catch (PDOException $e){ echo $e->getMessage(); exit; } }
それぞれブロックに分けて解説していきます。
if(isset($_POST['signin'])) { $username = $_POST['username']; $password = $_POST['password'];
こちらの部分は、サブミットボタンをクリックしたときにフォームに入力された値を受け取る部分です。
usernameとpasswordはフォームの中のname=""と一致しています。
try { $db = new PDO('mysql:host=localhost; dbname=データベース名','ユーザー名','パスワード'); $sql = 'insert into テーブル名(username,password) values(?,?)'; $stmt = $db->prepare($sql); $stmt->execute(array($username,$password)); $stmt = null; $db = null; header('Location: http://localhost/◯◯/'); exit;
こちらの部分は、サブミットボタンから渡ってきた値をデータベースのテーブルに挿入するための一連の動作を書いています。
$dbにPDOを使用してMySQLに接続する情報について記述。
$sqlにはSQL文のINSERTを使用して、先程作成したテーブルにデータを挿入するためのコードを入力
$stmtには先程データベースの接続情報を代入した$dbのPDO内のprepare()を使用して、データベースにデータを入力するスタンバイ状態にします。
$stmtについては、【PHP】$stmtの謎【$stmtって何?!】で解説しているので、興味があったらチェックしてみてください。
あとは$stmtの中に入っているPDOのexecute()で、配列の中に$usernameと$passwordを入れて、テーブルにデータとして入れ込みます。
最後に$stmtと$dbの中身を空にして、処理後の移動先を指定して処理終了です。
実際に登録処理ができていれば作業完了!
ここまでの流れを行ってもらえたら、PHPでの会員登録作業は完了です。
signup.phpを開いてUserNameとPasswordを入力したら、MySQLにログインしてデータがしっかりと入っているか確認をしてみてください。
select * from テーブル名;
MySQLにログインして、作成したデータベースにuseをかけ、上記のSQL文を打ち込むことで現在登録されているデータを確認することが出来ます。
PHPの会員登録機能は、繰り返し作って覚えよう!
今回は、PHPの会員登録機能について解説しましたが、実装は無事にできたでしょうか。
会員登録機能を作成するとMySQLの基本操作に慣れることが出来るので、何かしらのアプリを作るときには会員登録機能や、データを出し入れする機能を作って何回も繰り返し実装すると作り方が定着してきます。
また、今回作成した会員登録機能を作ったらログイン機能も作成することが出来るので、PHPでログイン機能を実装したい!【手順解説で誰でも実装可能】も是非チェックしてみてください。