概要
このページは、ユーザーの 作成・読み取り・更新・削除(CRUD)、権限ロール、状態管理、検索/並び替え/ページング、CSV出力 を備えた小規模向けユーザー管理の実装例です。データはサーバーの /data/users.json に保存します。
基本
- ユーザー属性:
id, name, email, role(admin/editor/viewer), status(active/inactive/suspended), createdAt - 機能:検索、列ソート、ページング、追加/編集/削除、CSV出力
- API:
?api=list|create|update|delete|export.csv(JSON, CSRF必須)
基礎
- 保存:JSON ファイル(小規模・学習用に最適)
- 検証:メール形式、重複禁止
- セキュリティ:CSRF トークン、エラーハンドリング、エスケープ
導入
/programming/UserManagement/に本ファイルをindex.phpとして配置/dataディレクトリを作成(Webサーバーの書き込み権限を付与)- 初回アクセス時に
users.jsonを自動生成します
※ 本コードは学習・社内ツール想定。本番では DB、認証、監査ログ、入力制約やレートリミット等を導入してください。
最新情報
- 2025-08-15 CSV エクスポートとページング・ソートを改善
- 2025-08-10 CSRF トークンと一意メール検証を追加
応用
- CSV 出力(ワンクリック)
- サーバー側での重複チェックとバリデーション
- アクセシビリティ:テーブル操作に ARIA ラベル
発展
- RBAC(Role-Based Access Control)を DB で厳密化
- 2段階認証/パスワード強度チェック
- 監査ログ(誰がいつ何を変更したか)
例(デモ UI)
CSRF:
a5192eb6a9fe5d9017ea3990f6275272| 操作 |
|---|
API 仕様(クリックで展開)
// GET ?api=list[&q=keyword]
// POST ?api=create { name, email, role, status }
// POST ?api=update { id, name?, email?, role?, status? }
// POST ?api=delete { id }
// GET ?api=export.csv (CSVダウンロード)