Page cover

ログイン・サインインシステムのサンプル

このコードは少人数(1~10000)程向けのユーザーに対応したログインシステムを想定しています。

PHPとJSDB API を利用したシンプルなアカウント登録・ログインシステムの実装例です。 ユーザーのアカウント情報をJSDBに保存し、セッションを使ってログイン状態を管理します。


ファイル構成

/auth_system
├── index.php        // ホームページ(ログイン後に表示)
├── login.php        // ログインページ
├── register.php     // サインアップ(アカウント登録)ページ
├── logout.php       // ログアウト処理
├── style.css        // 簡易スタイルシート(オプション)
└── functions.php    // APIやセッション管理を行う共通関数

functions.php (共通関数)

<?php
session_start();

$apiKey = "";  // APIで使用するデータベース名
$apiEndpoint = "https://events-front.mixeder.net/v2/jsdb";

// JSDBからユーザーを取得する関数
function getUsers() {
    global $apiKey, $apiEndpoint;
    $response = file_get_contents("$apiEndpoint?key=$apiKey&action=read");
    return json_decode($response, true) ?? [];
}

// 新しいユーザーをJSDBに保存する関数
function registerUser($username, $password) {
    global $apiKey, $apiEndpoint;
    $hashedPassword = password_hash($password, PASSWORD_BCRYPT);  // パスワードのハッシュ化
    $newUser = json_encode(["username" => $username, "password" => $hashedPassword]);

    $response = file_get_contents("$apiEndpoint?key=$apiKey&action=add&data=" . urlencode($newUser));
    return json_decode($response, true);
}

// ユーザーが存在するかを確認する関数
function findUser($username) {
    $users = getUsers();
    foreach ($users as $user) {
        if ($user['username'] === $username) {
            return $user;
        }
    }
    return null;
}

// ログイン状態を確認する関数
function isLoggedIn() {
    return isset($_SESSION['username']);
}
?>

register.php (サインアップページ)


login.php (ログインページ)


index.php (ホームページ)


logout.php (ログアウト処理)


style.css (簡易スタイルシート)


説明

  1. アカウント登録 (register.php): ユーザー名とパスワードを登録し、JSDBに保存します。

  2. ログイン (login.php): 登録済みのユーザー名とパスワードでログインし、セッションを開始します。

  3. ホームページ (index.php): ログイン後、ユーザー名を表示するページです。

  4. ログアウト (logout.php): セッションを破棄してログアウトします。


注意点

  • パスワードのハッシュ化: password_hash() 関数でパスワードを安全に保存します。

  • JSDBのAPI: ユーザーデータをJSON形式で管理するため、DBサーバーは不要です。

  • セッション管理: PHPセッションでログイン状態を管理します。

最終更新

役に立ちましたか?