ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して CMS でユーザー管理システムを開発する方法

PHP を使用して CMS でユーザー管理システムを開発する方法

PHPz
PHPzオリジナル
2023-06-21 17:24:40989ブラウズ

インターネットの発展に伴い、コンテンツ管理システム (CMS) は Web サイトの構築、開発、管理のための一般的なツールになりました。その中でもCMSにおけるユーザー管理システムは非常に重要で、Webサイト管理者はWebサイトの登録ユーザーを管理し、ユーザー情報、権限、キーなどを管理することができます。

この記事では、PHP を使用して CMS でユーザー管理システムを開発する方法を紹介し、ユーザー管理システムの基本的な操作と設計の考え方を理解して、Web サイトのユーザー管理をより適切に実装できるようにします。

1. データベース設計

まず、データベース内にユーザー データ テーブルを設計する必要があります。このデータ テーブルは、ユーザーの基本情報と権限 (ユーザー名、パスワードなど) を保存するために使用されます。 、電子メール、電話、その他の情報。このうちユーザー権限は管理者と一般ユーザーに分かれており、管理者ユーザーはユーザーの管理や各種操作を行う権限を持ち、一般ユーザーはアクセス権限のみを持ちます。

ユーザー データ テーブルは次のように設計されています:

CREATE TABLE users (
id int(11) NOT NULL AUTO_INCREMENT,
ユーザー名 varchar(50) NOT NULL,
パスワード varchar(255) NOT NULL,
email varchar(255) NOT NULL,
phone varchar(50) デフォルト NULL,
type tinyint(4) NOT NULL デフォルト '1',
主キー (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. ユーザー登録ページ

ユーザー登録ページは、ユーザー名、パスワード、メールアドレスなどの情報が記載されたフォームです。 . ユーザーが入力して送信します。バックグラウンドで、システムはフォーム データを受信して​​検証し、新しいユーザー アカウントを作成してデータベースに保存します。ユーザー登録ページのコードは次のとおりです。

c3e21731d9b4c344826bcb52eb926b95
100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e

<title>Register - CMS User Management System</title>
<link href="style.css" rel="stylesheet">

9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d

<div class="container">
    <h1>Register</h1>
    <form method="post">
        <label>Username</label>
        <input type="text" name="username" required>
        <label>Password</label>
        <input type="password" name="password" required>
        <label>Email</label>
        <input type="email" name="email" required>
        <label>Phone</label>
        <input type="text" name="phone">
        <label>Type</label>
        <select name="type">
            <option value="1">Regular User</option>
            <option value="2">Administrator</option>
        </select>
        <button type="submit">Register</button>
    </form>
</div>

36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e

3. ユーザー ログイン ページ

ユーザー ログイン ページは、ユーザーが入力したアカウントとパスワードが正しいかどうかを確認するために使用されます。ユーザーはデータベース内で正常に照合され、ユーザーが正当なユーザーであることが確認されます。検証が成功すると、システムはユーザーを CMS のメイン ページにリダイレクトします。検証が失敗すると、エラー メッセージがユーザーに表示されます。ユーザー ログイン ページのコードは次のとおりです:

f7a9feed14d3d747334914407eb696cc
100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e

<title>Login - CMS User Management System</title>
<link href="style.css" rel="stylesheet">

9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d

<div class="container">
    <h1>Login</h1>
    <?php if (isset($error)): ?>
        <div class="error"><?php echo $error; ?></div>
    <?php endif; ?>
    <form method="post">
        <label>Username</label>
        <input type="text" name="username" required>
        <label>Password</label>
        <input type="password" name="password" required>
        <button type="submit">Login</button>
    </form>
</div>

36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e

4. ユーザー管理ページ

ユーザー管理ページは、管理者が管理できる CMS の中核ページです。すべての Web サイト ユーザー (ユーザー情報の追加、編集、削除を含む)。したがって、ユーザー インターフェイスでは、自分のアカウント情報へのアクセスと編集のみが可能になります。このページでは、システムのセキュリティと適合性を確保するために、ユーザーが入力したデータを正しく検証して処理する必要もあります。ユーザー管理ページのコードは次のとおりです。

7d7f9d67f317d2fbb21f3b5eb73f2e96
aba7b36f87decd50b18c7e3e3c150106
100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e

<title>Manage Users - CMS User Management System</title>
<link href="style.css" rel="stylesheet">

9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d

<div class="container">
    <h1>Manage Users</h1>
    <table>
        <thead>
            <tr>
                <th>User ID</th>
                <th>Username</th>
                <th>Email</th>
                <th>Phone</th>
                <th>User Type</th>
                <th>Action</th>
            </tr>
        </thead>
        <tbody>
            <?php
            // Connect to database
            $conn = new mysqli("localhost", "root", "password", "database");
            // Check connection
            if ($conn->connect_error) {
                die("Connection failed: " . $conn->connect_error);
            }
            // SQL query to select all users
            $sql = "SELECT * FROM users";
            $result = $conn->query($sql);
            if ($result->num_rows > 0) {
                while ($row = $result->fetch_assoc()) {
                    echo "<tr>";
                    echo "<td>" . $row['id'] . "</td>";
                    echo "<td>" . $row['username'] . "</td>";
                    echo "<td>" . $row['email'] . "</td>";
                    echo "<td>" . $row['phone'] . "</td>";
                    if ($row['type'] == 1) {
                        echo "<td>Regular User</td>";
                    } else {
                        echo "<td>Administrator</td>";
                    }
                    echo "<td>";
                    echo "<a href="edit.php?id=" . $row['id'] . "">Edit</a>";
                    echo " | ";
                    echo "<a href="manage.php?delete=" . $row['id'] . "">Delete</a>";
                    echo "</td>";
                    echo "</tr>";
                }
            } else {
                echo "No users found";
            }
            $conn->close();
            ?>
        </tbody>
    </table>
    <a href="register.php">Add user</a>
    <a href="logout.php">Logout</a>
</div>

36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e

5. ユーザー編集ページ

ユーザー編集ページでは、管理者が現在のユーザーの情報を編集できるほか、現在のユーザーの情報。このページでは、データのセキュリティと適合性を確保するために、ユーザー入力データの適切な検証と処理が必要です。ユーザー編集ページのコードは次のとおりです:

282389f58f38e59481e5932eccce4850
aba7b36f87decd50b18c7e3e3c150106
100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e

<title>Edit User - CMS User Management System</title>
<link href="style.css" rel="stylesheet">

6c04bd5ca3fcae76e30b72ad730ca86d

<div class="container">
    <h1>Edit User</h1>
    <form method="post">
        <input type="hidden" name="id" value="<?php echo $id; ?>">
        <label>Username</label>
        <input type="text" name="username" value="<?php echo $username; ?>" required>
        <label>Email</label>
        <input type="email" name="email" value="<?php echo $email; ?>" required>
        <label>Phone</label>
        <input type="text" name="phone" value="<?php echo $phone; ?>">
        <label>Type</label>
        <select name="type">
            <option value="1" <?php if ($type == 1): ?>selected<?php endif; ?>>Regular User</option>
            <option value="2" <?php if ($type == 2): ?>selected<?php endif; ?>>Administrator</option>
        </select>
        <button type="submit">Save</button>
    </form>
    <a href="manage.php">Cancel</a>
</div>

36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e

ヒント:

  1. PHP プリペアド ステートメントを使用し、パラメータ バインディング SQL インジェクション攻撃を防ぐ方法。
  2. CMS ユーザー管理システムにクリア テキストのパスワードを保存しないでください。ユーザーパスワードの暗号化と復号化には、PHP パスワードハッシュ (password_hash()) を使用する必要があります。
  3. パスワードのリセットについては、このモジュールも管理者の責任となります。電子メール アドレスを入力して、ユーザーの電子メールにパスワード リセット リンクを送信します。これにより、ユーザーはパスワードをリセットし、独自の方法で続行できるようになります。
  4. CMS ユーザー管理システムのセキュリティと使いやすさを向上させるために、次の機能を適用できます。

パスワードの強度要件を追加します。

ボットを防ぐために確認コードを追加します。

ユーザーにアカウントを保護するための強力なパスワードの選択を強制します。

以上がPHP を使用して CMS でユーザー管理システムを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。