PHP、第一章:会員登録システムの基本機能を構築

PHP

PHPとMySQLを使って、簡単な会員登録システムを作成してみましょう。このシステムでは、ユーザー名、メールアドレス、パスワードを登録し、データベースに保存する仕組みを実現します。本記事では、基本的な3つのファイルを作成して動作を確認する方法を紹介します。ぜひ最後まで読んで実践してみてください!

準備するファイル

このシステムでは、以下の3つのファイルを作成します。

トップページ (index.html)
新規登録ページ (register.html)
データ挿入処理 (insert.php)

公開フォルダTOP

│── public\
├── index.html
   ├── register.html
   └── insert.php

│── app\
└── アプリケーションコード
   
│── config\
├── config.php
   └── .env

│── .htaccess
└── .htpasswd
Bash

データベースの準備

会員登録システムを動かすために、まずはデータベースを作成する必要があります。以下の手順に従って設定を行いましょう。

データベースの作成

  1. お使いのデータベース管理ツール(例: phpMyAdmin)にログインします。
  2. 新しいデータベースを作成し、名前を member_system に設定します。

テーブルの作成

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,     -- ユーザーID(自動採番)
    name VARCHAR(255) NOT NULL,           -- ユーザー名
    mail VARCHAR(255) NOT NULL,           -- メールアドレス
    pass VARCHAR(255) NOT NULL,           -- パスワード
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP  -- 登録日時
);
SQL

コードのポイント

  • id 列はプライマリキーとして設定し、ユーザーを一意に識別します。
  • name、mail、pass 列は、それぞれユーザー名、メールアドレス、パスワードを保存します。
  • created_at 列は、登録日時を自動的に記録します。

注意点

  • 本記事のシステムでは、パスワードは平文で保存されます。本番環境では必ず暗号化(例: password_hash())を行ってください。今回は登録だけなので使用しません。
  • データベース名やテーブル名は、適宜変更しても構いません。ただし、PHPコード内の設定と一致させる必要があります。

コードの解説

トップページ (index.html)

トップページは、新規登録ページへのリンクを表示します。以下がそのコードです。

<!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>
    <a href="register.html">新規登録</a>
</body>
</html>
index.html

このページはシンプルなHTML構成で、新規登録ページへ誘導する役割を持っています。

新規登録ページ (register.html)

ユーザーが名前、メールアドレス、パスワードを入力するフォームを提供します。以下のコードを参考にしてください。

<!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>
    <form action="insert.php" method="post">
<div>
    <label>
        ユーザー名:
        <input type="text" name="name">
    </label>
</div>
<div>
    <label>
        メールアドレス:
        <input type="text" name="mail">
    </label>
</div>
<div>
    <label>
        パスワード:
        <input type="password" name="pass">
    </label>
</div>
<input type="submit" value="新規登録">
</form>
</body>
</html>
register.html

このフォームでは、データが insert.php に送信されるように設計されています。

データ挿入処理 (insert.php)

ユーザーが送信したデータをデータベースに保存します。以下のコードを確認してください。

<?php
// データベース接続情報
$host = 'localhost';
$dbname = 'member_system';
$charset = 'utf8';     // 文字セット
$username = 'root';
$password = 'pass';

// フォームからの値をそれぞれ変数に代入
$name = $_POST['name'];
$mail = $_POST['mail'];
$pass = $_POST['pass'];

// DSN (Data Source Name) の作成
$dsn = "mysql:host=$host;dbname=$dbname;charset=$charset";
$pdo = new PDO($dsn, $username, $password);

$sql = "INSERT INTO users (name, mail, pass) VALUES ('$name', '$mail', '$pass')";
$pdo->query($sql);

echo "登録が完了しました!";
echo '<br><a href="index.html">トップに戻る</a>';
signup.php

動作確認

  • index.html をブラウザで開き、新規登録フォームに移動します。
  • 必要な情報を入力して登録ボタンを押してください。
  • データベースに情報が正しく保存されているか確認しましょう。
  • $password = ‘pass’;のpassが変更されている確認してください。

まとめ

今回の記事では、PHPを使ったシンプルな会員登録システムの基本的な機能を作成しました。以下の流れでシステムを構築しました。

  1. データベースの準備
    • 会員情報を保存するためのデータベースとテーブルを作成しました。
  2. トップページの作成
    • 会員登録フォームへのリンクを持つシンプルなトップページを作成しました。
  3. 新規登録ページの作成
    • ユーザーが名前、メールアドレス、パスワードを入力するフォームを作成しました。
  4. データ挿入処理
    • フォームから送信されたデータをデータベースに保存する機能を実装しました。

このシステムは、登録処理が正常に動作するかを確認するための基本的な構成となっています。ただし、本番環境で使用するにはセキュリティ対策が必要です。

次回予告:セキュリティ対策を実装する

今回のシステムでは、基本的な動作が確認できましたが、次回は以下のようなセキュリティ対策を実装します:

  • パスワードの暗号化
    パスワードを平文ではなく、password_hash() を使って安全に保存します。
  • SQLインジェクション対策
    ユーザー入力を直接SQLに挿入するのではなく、プリペアドステートメントを使用して安全性を確保します。
  • エラーハンドリング
    データベース接続やクエリ実行時のエラーを適切に処理し、システムの信頼性を向上させます。

次回の記事では、これらの対策を含む安全な会員登録システムを構築していきます。ぜひお楽しみに!

コメント

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