カテゴリ: PHP 更新日: 2026/01/15

PHPの認証機能を実装する方法!初心者でもわかるログイン・ログアウト処理の基本

PHP の認証機能を実装する方法(ログイン・ログアウト処理)
PHP の認証機能を実装する方法(ログイン・ログアウト処理)

先生と生徒の会話形式で理解しよう

生徒

「ウェブサイトにログイン機能をつけたいんですが、PHPでどうやって作ればいいですか?」

先生

「PHPでは、ログイン機能を作るのはそれほど難しくありませんよ。基本的には、ユーザー名やパスワードを入力して、それを確認し、正しければログイン状態にします。」

生徒

「パスワードってどこで確認するんですか?データベースとか必要ですか?」

先生

「そうですね、通常はデータベースに登録されたユーザー情報を使います。では、PHPでのログイン・ログアウトの仕組みを丁寧に解説していきましょう!」

-

1. PHPでのログイン・ログアウト機能の仕組みとは?

1. PHPでのログイン・ログアウト機能の仕組みとは?
1. PHPでのログイン・ログアウト機能の仕組みとは?

PHP(ピー・エイチ・ピー)は、Webページを動的に作るためのプログラミング言語です。PHPでログイン機能を作るときは、「セッション」という仕組みを使います。セッションとは、ユーザーがログインしたかどうかの状態をサーバー側で一時的に覚えておく仕組みです。

たとえば、スーパーのレジで「会員カードを出す」と、あなたが誰かをお店が覚えてくれるイメージです。この「覚えておく」のがセッションです。

2. ログイン処理の流れを理解しよう

2. ログイン処理の流れを理解しよう
2. ログイン処理の流れを理解しよう

ログインの基本的な流れは次の通りです。

  • ① ユーザーがログインフォームにユーザー名とパスワードを入力する
  • ② PHPがその情報を受け取り、データベースの情報と一致するかを確認する
  • ③ 一致すればセッションを使ってログイン状態にする
  • ④ ログイン中のユーザーだけが見られるページへリダイレクト(移動)させる

これだけ見ると難しそうに思えますが、一つずつコードで見ていくと理解しやすくなります。

3. PHPでログインフォームを作ろう

3. PHPでログインフォームを作ろう
3. PHPでログインフォームを作ろう

まずは、ユーザー名とパスワードを入力するフォームを作ります。以下は簡単なHTMLコードの例です。


<form action="login.php" method="post">
    <label>ユーザー名: <input type="text" name="username"></label><br>
    <label>パスワード: <input type="password" name="password"></label><br>
    <input type="submit" value="ログイン">
</form>

このフォームは、「login.php」というファイルに情報を送信します。

4. login.phpで認証処理をしよう

4. login.phpで認証処理をしよう
4. login.phpで認証処理をしよう

フォームから送られてきたユーザー名とパスワードを確認する処理をします。今回は、簡単な例としてデータベースを使わず、あらかじめ決めたユーザー名とパスワードで確認します。


<?php
session_start();

$valid_user = 'taro';
$valid_pass = 'pass123';

if ($_POST['username'] === $valid_user && $_POST['password'] === $valid_pass) {
    $_SESSION['user'] = $_POST['username'];
    header('Location: mypage.php');
    exit;
} else {
    echo 'ユーザー名またはパスワードが間違っています。';
}
?>

このコードでは、session_start()を使ってセッションを開始し、ログインが成功すればセッションにユーザー名を保存しています。

-

5. ログイン後のページを表示しよう(mypage.php)

5. ログイン後のページを表示しよう(mypage.php)
5. ログイン後のページを表示しよう(mypage.php)

ログインしている人だけが見られるページを作ります。


<?php
session_start();
if (!isset($_SESSION['user'])) {
    header('Location: loginform.html');
    exit;
}
echo "ようこそ、" . $_SESSION['user'] . "さん!";
?>

セッションにユーザー名があればログイン中と判断し、表示を続けます。なければログインフォームへ戻します。

6. ログアウト処理を追加しよう

6. ログアウト処理を追加しよう
6. ログアウト処理を追加しよう

ログアウトの処理もシンプルです。セッションの情報を削除して、ログイン前の状態に戻します。


<?php
session_start();
session_unset();
session_destroy();
header('Location: loginform.html');
exit;
?>

このコードをlogout.phpというファイルにして、リンクから呼び出せるようにします。


<a href="logout.php">ログアウトする</a>

7. 実際にデータベースを使うには?

7. 実際にデータベースを使うには?
7. 実際にデータベースを使うには?

現実的には、ユーザー情報はデータベース(MySQLなど)に保存されています。以下のような手順で処理を行います:

  • ① データベースに接続する
  • ② 入力されたユーザー名をもとに、パスワードを取り出す
  • ③ パスワードを比較する(ハッシュ化されたもの)

このように、データベースを使えば多くのユーザーを管理できます。パスワードはpassword_hashpassword_verify関数で安全に扱います。

8. ログイン状態をページ全体で使うには?

8. ログイン状態をページ全体で使うには?
8. ログイン状態をページ全体で使うには?

ログイン後のページすべてで共通してセッションチェックをしたいときは、「共通ファイル」を作って、全ページで読み込むようにします。


<?php
session_start();
if (!isset($_SESSION['user'])) {
    header('Location: loginform.html');
    exit;
}
?>

このコードをauth.phpなどにして、各ページの先頭でrequire 'auth.php';と書くことで共通化できます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
PHP
PHPの認証機能を実装する方法!初心者でもわかるログイン・ログアウト処理の基本
New2
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
New3
PHP
PHPのスコープとは?グローバル・ローカル・スーパーグローバルを完全解説!
New4
PHP
PHPの演算子をやさしく解説!算術・比較・論理・ビット演算子の使い方
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで辞書のキー・値・アイテムを取得する方法(keys(), values())
No.2
Java&Spring記事人気No2
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.4
Java&Spring記事人気No4
PHP
PHPの特殊文字とエスケープ処理を完全ガイド!初心者向けにhtmlspecialcharsとhtmlentitiesをやさしく解説
No.5
Java&Spring記事人気No5
Python
PythonでMySQLに接続する方法を完全解説!初心者でもわかるpymysqlの基本
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
PHP
PHPで画像ファイルをアップロードする方法を初心者向けに徹底解説!わかりやすい画像処理入門
No.8
Java&Spring記事人気No8
PHP
PHP の日付と時間の取得(date, time, strtotime)を完全解説!初心者でもわかる使い方
-
-