ログイン・サインインシステムのサンプル
PHPとJSDB API を利用したシンプルなアカウント登録・ログインシステムの実装例です。 ユーザーのアカウント情報をJSDBに保存し、セッションを使ってログイン状態を管理します。
ファイル構成
/auth_system
├── index.php // ホームページ(ログイン後に表示)
├── login.php // ログインページ
├── register.php // サインアップ(アカウント登録)ページ
├── logout.php // ログアウト処理
├── style.css // 簡易スタイルシート(オプション)
└── functions.php // APIやセッション管理を行う共通関数functions.php (共通関数)
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 (サインアップページ)
register.php (サインアップページ)login.php (ログインページ)
login.php (ログインページ)index.php (ホームページ)
index.php (ホームページ)logout.php (ログアウト処理)
logout.php (ログアウト処理)style.css (簡易スタイルシート)
style.css (簡易スタイルシート)説明
アカウント登録 (
register.php): ユーザー名とパスワードを登録し、JSDBに保存します。ログイン (
login.php): 登録済みのユーザー名とパスワードでログインし、セッションを開始します。ホームページ (
index.php): ログイン後、ユーザー名を表示するページです。ログアウト (
logout.php): セッションを破棄してログアウトします。
注意点
パスワードのハッシュ化:
password_hash()関数でパスワードを安全に保存します。JSDBのAPI: ユーザーデータをJSON形式で管理するため、DBサーバーは不要です。
セッション管理: PHPセッションでログイン状態を管理します。
最終更新
役に立ちましたか?
