인터넷의 발전과 함께 콘텐츠 관리 시스템(CMS)은 웹 사이트 구축, 개발 및 관리를 위한 일반적인 도구가 되었습니다. 그 중 CMS의 사용자 관리 시스템은 웹사이트 관리자가 웹사이트에 등록된 사용자를 관리하고 사용자 정보, 권한 및 키를 관리할 수 있도록 하는 매우 중요합니다.
이 기사에서는 PHP를 사용하여 CMS에서 사용자 관리 시스템을 개발하는 방법을 소개하고, 사용자 관리 시스템의 기본 운영 및 설계 아이디어를 이해하고, 웹사이트 사용자 관리를 더 잘 구현하는 데 도움을 줄 것입니다.
1. 데이터베이스 디자인
먼저 데이터베이스에 사용자 데이터 테이블을 디자인해야 합니다. 이 데이터 테이블은 사용자 이름, 비밀번호, 이메일, 전화번호 및 기타 정보와 같은 사용자의 기본 정보 및 권한을 저장하는 데 사용됩니다. . 그 중 사용자 권한은 관리자와 일반 사용자로 구분됩니다. 관리자 사용자는 사용자 및 각종 작업을 관리할 수 있는 권한을 갖고, 일반 사용자는 접근 권한만 갖습니다.
사용자 데이터 테이블의 디자인은 다음과 같습니다:
CREATE TABLE users
(
id
int(11) NOT NULL AUTO_INCREMENT,
username
varchar(50) NOT NULL,
password
varchar(255) NOT NULL,
email
varchar(255) NOT NULL,
phone
varchar(50) DEFAULT NULL,
type
tinyint(4) NOT NULL DEFAULT '1',
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2 사용자 등록 페이지
사용자 등록 페이지에는 사용자 이름, 비밀번호, 이메일이 나열됩니다. 주소 및 기타 사용자가 작성하고 제출하는 정보의 한 형태입니다. 그 뒤에서 시스템은 양식 데이터를 수신 및 검증하고, 새로운 사용자 계정을 생성하고, 이를 데이터베이스에 저장합니다. 사용자 등록 페이지 코드는 다음과 같습니다.
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username']; $password = password_hash($_POST['password'], PASSWORD_BCRYPT); $email = $_POST['email']; $phone = $_POST['phone']; $type = $_POST['type']; // 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 insert new user $sql = "INSERT INTO users (username, password, email, phone, type) VALUES ('$username', '$password', '$email', '$phone', $type)"; if ($conn->query($sql) === TRUE) { header("Location: login.php"); } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close();
}
?>
<title>Register - CMS User Management System</title> <link href="style.css" rel="stylesheet">
<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>
3. 사용자 로그인 페이지 사용자를 확인하는 데 사용됩니다. 입력된 계정과 비밀번호가 데이터베이스에서 성공적으로 일치하는지 확인하여 사용자가 합법적인 사용자인지 확인합니다. 확인에 성공하면 시스템은 사용자를 CMS의 기본 페이지로 리디렉션하고, 확인에 실패하면 사용자에게 오류 메시지가 표시됩니다. 사용자 로그인 페이지의 코드는 다음과 같습니다.
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username']; $password = $_POST['password']; // 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 user with given username $sql = "SELECT id, username, password, type FROM users WHERE username='$username'"; $result = $conn->query($sql); if ($result->num_rows == 1) { // User found, check password $row = $result->fetch_assoc(); if (password_verify($password, $row['password'])) { // Passwords match, set session variables and redirect to main page session_start(); $_SESSION['user_id'] = $row['id']; $_SESSION['username'] = $row['username']; $_SESSION['type'] = $row['type']; header("Location: index.php"); } else { // Passwords do not match, display error message $error = "Invalid login credentials"; } } else { // User not found, display error message $error = "Invalid login credentials"; } $conn->close();
<title>Login - CMS User Management System</title> <link href="style.css" rel="stylesheet">
<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>
4.사용자 관리 페이지
4. 관리자가 사용자 정보의 추가, 편집, 삭제 등 모든 웹사이트 사용자를 관리할 수 있는 CMS 페이지의 핵심입니다. 따라서 사용자 인터페이스에서는 자신의 계정 정보에 대한 액세스 및 편집만 허용됩니다. 또한 이 페이지는 시스템의 보안과 적합성을 보장하기 위해 사용자가 입력한 데이터를 올바르게 검증하고 처리해야 합니다. 사용자 관리 페이지의 코드는 다음과 같습니다.
session_start();
if ($_SESSION['type'] != 2) {
// Redirect non-admin users to index.php header("Location: index.php");
// Handle form submission $id = $_POST['id']; $username = $_POST['username']; $email = $_POST['email']; $phone = $_POST['phone']; $type = $_POST['type']; // 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 update user $sql = "UPDATE users SET username='$username', email='$email', phone='$phone', type=$type WHERE id=$id"; if ($conn->query($sql) !== TRUE) { echo "Error updating record: " . $conn->error; } $conn->close();
} elseif (isset($_GET['delete'])) {
// Handle deleting user $id = $_GET['delete']; // 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 delete user $sql = "DELETE FROM users WHERE id=$id"; if ($conn->query($sql) !== TRUE) { echo "Error deleting record: " . $conn->error; } $conn->close();
}
?><title>Manage Users - CMS User Management System</title> <link href="style.css" rel="stylesheet">
session_start();
if ($_SESSION['type'] != 2) {<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>
// Redirect non-admin users to index.php header("Location: index.php");
} elseif (isset($_GET['id'])) {
// Handle form submission $id = $_POST['id']; $username = $_POST['username']; $email = $_POST['email']; $phone = $_POST['phone']; $type = $_POST['type']; // 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 update user $sql = "UPDATE users SET username='$username', email='$email', phone='$phone', type=$type WHERE id=$id"; if ($conn->query($sql) !== TRUE) { echo "Error updating record: " . $conn->error; } $conn->close();
} else {
// Display user editing form $id = $_GET['id']; // 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 user $sql = "SELECT * FROM users WHERE id=$id"; $result = $conn->query($sql); if ($result->num_rows == 1) { $row = $result->fetch_assoc(); $username = $row['username']; $email = $row['email']; $phone = $row['phone']; $type = $row['type']; } else { header("Location: manage.php"); } $conn->close();
}
?>
< ;head>
header("Location: manage.php");
<title>Edit User - CMS User Management System</title> <link href="style.css" rel="stylesheet">
위 내용은 PHP를 사용하여 CMS에서 사용자 관리 시스템을 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!