1から学べる!会員登録&ログインページの作り方をわかりやすく解説(PHPコピペテンプレ付き)

目次

こんな悩みありませんか?

  • ログイン機能を1から自分で作ってみたいけど難しそう…
  • 案件で「会員制サイトを作ってほしい」と言われたけど対応できるか不安…
  • WordPressを使わずに、PHPだけで作れるようになりたい!

実は、基本的なログイン機能はPHPだけで実装できます。

しかも、ちゃんとセッションを使ったログイン管理、パスワードのハッシュ化など、実案件でも安心して使える形で構築可能なんです。

今回は、PHP初心者でも「会員登録ページ」「ログイン処理」「マイページ」まで作れるようになるための学習記事をご紹介します。

🎬 完成イメージ


📂 ファイル構成(実用的な分割型)

php-login-system/
├─ register.php       ← 会員登録フォーム
├─ login.php          ← ログインフォーム
├─ mypage.php         ← ログイン後の会員ページ
├─ logout.php         ← ログアウト処理
├─ config.php         ← DB接続設定
└─ db.sql             ← 初期テーブル構築用SQL

STEP1 会員登録フォームを作ろう

まずは、ユーザーが「名前」「メールアドレス」「パスワード」を入力して新規登録できる会員登録フォームを作成します。

このフォームでは、以下のような処理を行います

  • 入力フォームの設置(HTML)
  • データの受信とバリデーション(PHP)
  • パスワードの安全な保存(ハッシュ化)
  • MySQLへの登録(INSERT文)

✅ HTML+PHPによる会員登録ページ(register.php)

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>会員登録</title>
</head>
<body>
  <h2>会員登録フォーム</h2>
  <form action="register.php" method="post">
    <input type="text" name="name" placeholder="名前" required><br>
    <input type="email" name="email" placeholder="メールアドレス" required><br>
    <input type="password" name="password" placeholder="パスワード" required><br>
    <button type="submit">登録する</button>
  </form>
</body>
</html>

🔍 解説

  • method=”post” により、フォームの内容をPHPに渡してサーバー側で処理します。
  • required 属性を使って、ブラウザ上でも必須入力チェックをかけています。
  • このフォームの送信先は自分自身(register.php)なので、同じファイル内で登録処理を行います。

✅ PHPで入力を受け取り、データベースに保存

フォーム送信後の処理も同じ register.php に記述します。

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  require 'config.php'; // DB接続用ファイル

  $name = $_POST['name'];
  $email = $_POST['email'];
  $password = password_hash($_POST['password'], PASSWORD_DEFAULT);

  $stmt = $pdo->prepare("INSERT INTO users (name, email, password) VALUES (?, ?, ?)");
  $stmt->execute([$name, $email, $password]);

  echo "登録が完了しました!<br>";
  echo '<a href="login.php">ログインはこちら</a>';
}
?>

🔍 解説

  • password_hash() を使うことで、平文のパスワードを安全に暗号化して保存できます。
  • SQLインジェクション対策として、prepare() + execute() を使用しています。
  • 処理後は、ログインページへのリンクを表示して次のステップへ自然につなげます。

ここまでで、会員登録フォームの表示〜データベース保存までが完了しました。
次は、登録済みユーザーがログインできる処理を作っていきましょう!


STEP2 ログインフォームと認証処理を作ろう

会員登録ができたら、次に必要なのは「ログイン」機能です。
ここでは、ユーザーがメールアドレスとパスワードを入力して、自分のアカウントにログインできる仕組みを作ります。

このステップでは以下の処理を実装します:

  • ログインフォーム(HTML)
  • ユーザー情報の取得と認証(PHP)
  • パスワードの照合(password_verify())
  • ログイン成功時にセッションを開始
  • ログイン失敗時にエラーメッセージを表示

✅ HTML+PHPによるログインページ(login.php)

<?php session_start(); ?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>ログイン</title>
</head>
<body>
  <h2>ログインフォーム</h2>
  <form action="login.php" method="post">
    <input type="email" name="email" placeholder="メールアドレス" required><br>
    <input type="password" name="password" placeholder="パスワード" required><br>
    <button type="submit">ログイン</button>
  </form>
</body>
</html>

🔍 解説

  • 最初に session_start() を必ず呼び出して、ログイン状態を管理できるようにします。
  • method=”post” により、フォームの入力内容が login.php に渡されます。
  • required 属性で空入力を防止しています。

✅ 入力内容の受信と認証チェック

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  require 'config.php'; // DB接続

  $stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
  $stmt->execute([$_POST['email']]);
  $user = $stmt->fetch();

  if ($user && password_verify($_POST['password'], $user['password'])) {
    $_SESSION['user'] = $user['name']; // ログイン成功→セッション開始
    header("Location: mypage.php");
    exit;
  } else {
    echo "ログインに失敗しました。メールアドレスまたはパスワードが正しくありません。";
  }
}
?>

🔍 解説

  • password_verify() を使って、入力されたパスワードとDBに保存されているハッシュを比較します。
  • ログイン成功時は $_SESSION[‘user’] にユーザー名を保存します(マイページ等で表示可能)。
  • header(“Location: mypage.php”) でログイン後にマイページへリダイレクトします。

これで、ログインページと認証処理の基本部分が完成です。
次のSTEPでは、ログイン状態を保持してマイページを表示する処理を作っていきましょう!

STEP3 マイページの作成とセッションチェック

ログイン後のユーザーが見る専用ページ、いわゆる「マイページ」を作成します。
このページでは、ログイン済みのユーザーだけがアクセスできるように制御します。


✅ 実装の目的

  • セッションにユーザー情報があるかを確認
  • 未ログイン状態のアクセスを防止(リダイレクト)
  • ログイン中のユーザー名を表示

🔧 この先の実装こそが本番です!

STEP1とSTEP2だけでも動くように見えますが、実は本番で役立つのはこの先のパートです。

  • ログイン中だけアクセスできるマイページの実装
  • ログアウト処理によるセキュアな状態管理
  • DB接続と初期テーブル作成による運用前提の構築

など、「実務でちゃんと使える形」に仕上げるためのテクニックが詰まっています。


🚀 このスキルが身につくとどうなるか?

この講座で学ぶ内容は、そのまま案件に応用できる力になります。

  • お客様の要望に「できます」と答えられるようになる
  • WordPressに頼らず、シンプルな会員機能を自作できる
  • パスワードの安全な扱いやセッション管理の知識が身につく

結果として、信頼されるWeb制作者としてのステップアップにもつながります。


✅ この記事でできるようになること

  • HTML・PHPを使った会員登録&ログイン機能の基礎構築
  • password_hash() と password_verify() による安全な認証
  • セッションを用いたログイン状態の管理
  • 自分だけのマイページ・ログアウト機能の実装
  • データベース設計〜接続までの一連の流れを理解できる

🤖 ChatGPTプロンプト付きで、実装の自動化にも対応!

本記事には、ChatGPTでログイン機能を自動生成できるプロンプト例も収録しています。

  • ログイン認証の処理
  • ログインユーザーしか見られないマイページ
  • パスワードをハッシュ化するPHPコード

といった仕組みを、理解しながら効率よく実装できるようになります。


📝 次回予告|CSVインポート&エクスポート超入門

次回は、業務システムでも頻出のCSVファイルの読み書き処理をやさしく解説します!

  • CSVアップロードでDB登録
  • DBの内容をCSVでダウンロード
  • 文字コードやバリデーションの注意点

など、案件でも重宝される機能を一緒に学びましょう!


✨ 定期購読メンバーシップのご案内!

noteメンバーシップでは、以下の特典をご用意しています!

  • あなたのコードを添削&アドバイス(HTML/CSS/JS/PHP)
  • Zoom相談での個別サポート(月1回)
  • 実務にも使えるテンプレートの先行配布
  • ChatGPT活用ノウハウやプロンプト共有

「もっと学びたい」「詰まったときに相談したい」

そんな方は、ぜひメンバー登録をご検討ください!

👉 あなたの「できた!」を、これからも一緒にサポートします。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

愛知県を拠点に、AIを活用した業務改善支援、WEB制作、マーケティング戦略サポートを行っています。

営業、マーケティング、WEB開発など多分野で20年以上実務経験を積み、現場視点を持った提案と問題解決を強みとしています。

「誰でも気軽にAIを活用できる世界をつくる」をモットーに、中小企業や個人事業主向けに、成果につながる実践的なノウハウを提供。
ブログやYouTubeを通じて、わかりやすく実用的な情報発信にも力を入れています。

AI活用・業務効率化・マーケティング(集客)でお困りの際は、ぜひご相談ください。

目次