PHPで会員登録にチャレンジ!【5.入力データをデータベースに登録】

PHP

前回、会員登録入力内容のチェックをしました。

データベースに登録する処理

そのチェックをした後のデータを受け取って
データベースに登録する処理をします。

会員登録入力完了

ファイル名:register_end.php

<記述例>

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>会員登録入力完了</title>
  </head>
  <body>

<?php

$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];

$username = htmlspecialchars($username);
$email = htmlspecialchars($email);
$password = htmlspecialchars($password);

try
{

$dsn='mysql:dbname=register;host=localhost';
$user='root';
$dbpassword='';
$dbh=new PDO($dsn,$user,$dbpassword);
$dbh->query('SET NAMES utf8');

$sql='INSERT INTO member(name,email,pass) VALUES (?,?,?)';
$stmt=$dbh->prepare($sql);
$data[]=$username;
$data[]=$email;
$data[]=$password;
$stmt->execute($data);

$dbh=null;

}
catch(Exception $e)
{
  print ' ただいま障害により大変ご迷惑をおかけしております。';
  exit();
}

print 'ユーザー名:'.$username;
print ' さんを追加しました。<br>';
print 'メールアドレス:'.$email.'<br><br>';
print '会員のご登録ありがとうございました。<br>';

?>

<a href="top.php"> 戻る </a>

  </body>
</html>

register_end.phpの解説

では解説していきます。

11行目からは、register_check.phpと同じです。

11~13行目:送信データを受け取り変数に代入します。
15~17行目:データをサニタイズ(無害化)する

19行目からはデータベース接続です。

28行目のSQLではINSERT文を使用しています。

<記述例>

$sql='INSERT INTO member(name,email,pass) VALUES (?,?,?)';

INSERT文でデータを登録します。

INSERT文を簡単に説明すると、
INSERT INTO テーブル名(カラム名1,カラム名2) VALUES(値1,値2)
となっています。

テーブル名の後のカラム名は省略可能です。

ここでは、テーブル名:member のカラム名:name,email,pass
値(ここでは ? )のデータを登録するということです。

ここでの値にあたる[?]は、そこに入れたいデータを、
30~32行目で $data[] に代入しています。

<記述例>

$data[]=$username;
$data[]=$email;
$data[]=$password;

つまり、name,email,pass のカラムに
$username,$email,$passwordを登録している
ということです。

これまでの解説で、INSERT文がデータベースに
登録するための命令だと分かったと思います。

これで、会員登録画面から入力されたデータを
登録することができました。

実際の登録処理の確認

それでは、前回と今回のファイルを使って
XAMPPを使って実際の登録を確認してみましょう。

XAMPPをインストールしてある前提です。

ここに掲載した、「register_end.php」
前回掲載した、「register.html」
「register_check.php」とをUTF-8ファイルとして保存します。

記 事 紹 介
PHPで会員登録にチャレンジ!【4.データベース接続】

ドキュメントルート(DocumentRoot)以下のフォルダに
3つのファイルをコピーし、「register.html」
実行してみてください。

実行する前に、XAMPPのコントロールパネルを起動し、
[Apache]列の[Start]と[MySQL]列の[Start]
をクリックし[Apache]と[MySQL]とを起動させてください。

ユーザー名やメールアドレス、パスワードを適当に入力し、

「register_check.php」での表示を見て、

「register_end.php」で登録を
確認してみてください。

登録されてあるかをphpMyAdminで確認

また、登録した後
「会員のご登録ありがとうございました。」
って書かれてあるけど

本当に登録されてあるのか?
疑問に感じるかもしれませんので
phpMyAdminを使って確認してみます。

ウェブブラウザに、
「http://localhost/phpmyadmin」と入力し
[Enter]キー入力します。

「phpMyAdmin」画面が表示されますので、
[データベース]をクリックします。

データベース一覧から、「register」をクリックします。

テーブルの「member」をクリックします。

先ほど入力したデータが表示されていれば、
登録が無事確認ということです。

終わりましたら、XAMPPのコントロールパネルで
[Apache]列の[Stop]と[MySQL]列の[Stop]
をクリックし[Apache]と[MySQL]とを終了させてください。

コメント

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