前回、会員登録入力内容のチェックをしました。
データベースに登録する処理
そのチェックをした後のデータを受け取って
データベースに登録する処理をします。
会員登録入力完了
ファイル名: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ファイルとして保存します。
ドキュメントルート(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]とを終了させてください。

コメント