Jinsi ya Kutengeneza Admin vs User Dashboard
Admin: kuona, kusimamia data zote, ku-edit au delete entries.
User: kuona data yao pekee, kufanya limited actions.
Kila dashboard ina features kulingana na role_level au role ya user.
โ๏ธ 2. Database Setup (Kama ilivyokuwa kwenye Multi-Level User Access)
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
role_level INT DEFAULT 3, -- 1=Admin, 2=Manager, 3=User
is_verified TINYINT(1) DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Admin = 1, User = 3.
๐งฉ 3. Login Script (Kuhifadhi Session Data)
session_start();
$stmt = $pdo->prepare("SELECT * FROM users WHERE email=:email");
$stmt->execute(['email'=>$email]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if($user && password_verify($password, $user['password'])){
if($user['is_verified'] == 0){
$error = "โ Please verify your email first!";
} else {
session_regenerate_id(true);
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
$_SESSION['role_level'] = $user['role_level'];
// Redirect based on role_level
if($user['role_level'] == 1){
header("Location: admin_dashboard.php");
} else {
header("Location: user_dashboard.php");
}
exit;
}
}
๐ก Maelezo:
Role determines which dashboard user accesses.
๐ 4. Admin Dashboard Example (admin_dashboard.php)
<?php
session_start();
// Only allow admin
if(!isset($_SESSION['role_level']) || $_SESSION['role_level'] != 1){
die("โ Access denied. Admins only.");
}
?>
<h1>Welcome Admin, <?php echo $_SESSION['username']; ?>!</h1>
<ul>
<li><a href="manage_users.php">Manage Users</a></li>
<li><a href="view_reports.php">View Reports</a></li>
<li><a href="settings.php">System Settings</a></li>
<li><a href="logout.php">Logout</a></li>
</ul>
Admin dashboard ina links za management features.
๐ 5. User Dashboard Example (user_dashboard.php)
<?php
session_start();
// Only allow normal users
if(!isset($_SESSION['role_level']) || $_SESSION['role_level'] > 2){
die("โ Access denied. Users only.");
}
?>
<h1>Welcome <?php echo $_SESSION['username']; ?>!</h1>
<ul>
<li><a href="view_profile.php">View Profile</a></li>
<li><a href="submit_request.php">Submit Request</a></li>
<li><a href="logout.php">Logout</a></li>
</ul>
User dashboard ina links za limited actions kulingana na role.
๐ 6. Vidokezo vya Usalama
Always check session role_level server-side.
Separate dashboards = clear separation of privileges.
Logout & session_destroy() on logout.
Optional: audit logs kwa admin actions.
โ 7. Hitimisho
Multi-dashboard system inarahisisha user experience na security.
Admin na user wanaaccess tofauti kulingana na role.
Best practice: server-side access checks, role-based redirects, minimal privileges.
๐ Tembelea:
๐ https://www.faulink.com/
Kwa mafunzo zaidi ya PHP, user authentication, na dashboard development.