File manager - Edit - /var/www/order.cmtc.ac.th/admin/users.php
Back
<?php session_start(); if(!isset($_SESSION['admin'])) { header("Location: index.php"); exit; } include('../config/db.php'); $role = $_SESSION['admin_role']; $user_id = $_SESSION['admin_id']; $msg = ""; // ✅ ถ้าเป็น User ธรรมดา — จำกัดสิทธิ์เฉพาะเปลี่ยนรหัสผ่านของตนเอง // ✅ ผู้ใช้ทุกคนสามารถเปลี่ยนรหัสผ่านของตนเองได้ if(isset($_POST['change_password'])){ $old_pass = md5(trim($_POST['old_password'])); $new_pass = md5(trim($_POST['new_password'])); // ตรวจสอบรหัสผ่านเดิม $chk = $conn->query("SELECT id FROM users WHERE id=$user_id AND password='$old_pass'"); if($chk && $chk->num_rows > 0){ $conn->query("UPDATE users SET password='$new_pass' WHERE id=$user_id"); $msg = "<div class='alert alert-success'>🔒 เปลี่ยนรหัสผ่านเรียบร้อยแล้ว</div>"; } else { $msg = "<div class='alert alert-danger'>❌ รหัสผ่านเดิมไม่ถูกต้อง</div>"; } } // ✅ ถ้าเป็น Admin สามารถจัดการผู้ใช้ได้ if($role == 'admin'){ // เพิ่มผู้ใช้ใหม่ if(isset($_POST['add_user'])){ $username = trim($_POST['username']); $password = md5(trim($_POST['password'])); $fullname = trim($_POST['fullname']); $role_new = $_POST['role']; $chk = $conn->query("SELECT id FROM users WHERE username='$username'"); if($chk->num_rows > 0){ $msg = "<div class='alert alert-warning'>⚠️ มีชื่อผู้ใช้นี้อยู่แล้ว</div>"; } else { $conn->query("INSERT INTO users (username, password,remember_token, fullname, role) VALUES ('$username','$password','','$fullname','$role_new')"); $msg = "<div class='alert alert-success'>✅ เพิ่มผู้ใช้เรียบร้อยแล้ว</div>"; } } // อัปเดตข้อมูลผู้ใช้ if(isset($_POST['edit_user'])){ $id = intval($_POST['user_id']); $fullname = trim($_POST['fullname']); $role_edit = $_POST['role']; $password = trim($_POST['password']); if($password != ""){ $password = md5($password); $conn->query("UPDATE users SET fullname='$fullname', role='$role_edit', password='$password' WHERE id=$id"); } else { $conn->query("UPDATE users SET fullname='$fullname', role='$role_edit' WHERE id=$id"); } $msg = "<div class='alert alert-success'>✏️ อัปเดตข้อมูลผู้ใช้เรียบร้อยแล้ว</div>"; } // ลบผู้ใช้ if(isset($_GET['del'])){ $id = intval($_GET['del']); if($id != $_SESSION['admin_id']){ $conn->query("DELETE FROM users WHERE id=$id"); $msg = "<div class='alert alert-success'>🗑️ ลบผู้ใช้เรียบร้อยแล้ว</div>"; } else { $msg = "<div class='alert alert-danger'>❌ ไม่สามารถลบบัญชีของคุณเองได้</div>"; } } $users = $conn->query("SELECT * FROM users ORDER BY id ASC"); } ?> <!DOCTYPE html> <html lang="th"> <head> <meta charset="UTF-8"> <title>👥 จัดการผู้ใช้งานระบบ</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Kanit:wght@300;400;600&display=swap" rel="stylesheet"> <style> body,*{font-family:'Kanit',sans-serif!important;} .modal-content { border-radius: 1rem; } </style> </head> <body class="bg-light"> <?php include('menu.php'); ?> <div class="container py-4"> <h3>👥 จัดการผู้ใช้งานระบบ</h3> <?=$msg ?? ''?> <?php if($role == 'admin'): ?> <!-- ✅ ปุ่มเพิ่มผู้ใช้ --> <div class="text-end mb-3"> <button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#addUserModal">➕ เพิ่มผู้ใช้ใหม่</button> </div> <!-- ✅ ตารางผู้ใช้ --> <div class="card shadow-sm"> <div class="card-header bg-dark text-white fw-bold">📋 รายชื่อผู้ใช้ทั้งหมด</div> <div class="card-body p-0"> <table class="table table-bordered text-center align-middle mb-0"> <thead class="table-light"> <tr> <th>#</th> <th>ชื่อผู้ใช้</th> <th>ชื่อ-นามสกุล</th> <th>สิทธิ์</th> <th>วันที่สร้าง</th> <th>จัดการ</th> </tr> </thead> <tbody> <?php if($users->num_rows>0): $i=1; while($u=$users->fetch_assoc()): ?> <tr> <td><?=$i++?></td> <td><?=$u['username']?></td> <td><?=$u['fullname']?></td> <td><?=$u['role']=='admin'?'🧑💼 Admin':'👤 User'?></td> <td><?=$u['created_at']?></td> <td> <?php if($u['id'] != $_SESSION['admin_id']): ?> <button class="btn btn-sm btn-warning" data-bs-toggle="modal" data-bs-target="#editUserModal<?=$u['id']?>">✏️ แก้ไข</button> <a href="?del=<?=$u['id']?>" onclick="return confirm('ยืนยันการลบผู้ใช้นี้หรือไม่?')" class="btn btn-sm btn-danger">🗑️ ลบ</a> <?php else: ?> <button class="btn btn-sm btn-info" data-bs-toggle="modal" data-bs-target="#changePassModal<?=$u['id']?>">🔒 เปลี่ยนรหัสผ่าน</button> <?php endif; ?> </td> </tr> <!-- ✅ Modal แก้ไขผู้ใช้ --> <div class="modal fade" id="editUserModal<?=$u['id']?>" tabindex="-1"> <div class="modal-dialog"> <div class="modal-content"> <form method="post"> <div class="modal-header bg-warning"> <h5 class="modal-title">✏️ แก้ไขข้อมูลผู้ใช้</h5> <button type="button" class="btn-close" data-bs-dismiss="modal"></button> </div> <div class="modal-body"> <input type="hidden" name="user_id" value="<?=$u['id']?>"> <div class="mb-3"> <label>ชื่อผู้ใช้</label> <input type="text" class="form-control" value="<?=$u['username']?>" disabled> </div> <div class="mb-3"> <label>ชื่อ-นามสกุล</label> <input type="text" name="fullname" class="form-control" value="<?=$u['fullname']?>"> </div> <div class="mb-3"> <label>รหัสผ่าน (กรอกเฉพาะเมื่อเปลี่ยน)</label> <input type="password" name="password" class="form-control"> </div> <div class="mb-3"> <label>สิทธิ์ผู้ใช้</label> <select name="role" class="form-select"> <option value="user" <?=($u['role']=='user'?'selected':'')?>>User</option> <option value="admin" <?=($u['role']=='admin'?'selected':'')?>>Admin</option> </select> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">ปิด</button> <button type="submit" name="edit_user" class="btn btn-warning">บันทึก</button> </div> </form> </div> </div> </div> <!-- ✅ Modal เปลี่ยนรหัสผ่าน --> <div class="modal fade" id="changePassModal<?=$u['id']?>" tabindex="-1"> <div class="modal-dialog"> <div class="modal-content"> <form method="post"> <div class="modal-header bg-info text-white"> <h5 class="modal-title">🔒 เปลี่ยนรหัสผ่านของฉัน</h5> <button type="button" class="btn-close" data-bs-dismiss="modal"></button> </div> <div class="modal-body"> <div class="mb-3"> <label>รหัสผ่านเดิม</label> <input type="password" name="old_password" class="form-control" required> </div> <div class="mb-3"> <label>รหัสผ่านใหม่</label> <input type="password" name="new_password" class="form-control" required> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">ยกเลิก</button> <button type="submit" name="change_password" class="btn btn-info text-white">บันทึก</button> </div> </form> </div> </div> </div> <?php endwhile; else: ?> <tr><td colspan="6" class="text-center text-muted py-4">ไม่พบข้อมูลผู้ใช้</td></tr> <?php endif; ?> </tbody> </table> </div> </div> <!-- ✅ Modal เพิ่มผู้ใช้ --> <div class="modal fade" id="addUserModal" tabindex="-1"> <div class="modal-dialog"> <div class="modal-content"> <form method="post"> <div class="modal-header bg-primary text-white"> <h5 class="modal-title">➕ เพิ่มผู้ใช้ใหม่</h5> <button type="button" class="btn-close" data-bs-dismiss="modal"></button> </div> <div class="modal-body"> <div class="mb-3"> <label>ชื่อผู้ใช้</label> <input type="text" name="username" class="form-control" required> </div> <div class="mb-3"> <label>รหัสผ่าน</label> <input type="password" name="password" class="form-control" required> </div> <div class="mb-3"> <label>ชื่อ-นามสกุล</label> <input type="text" name="fullname" class="form-control"> </div> <div class="mb-3"> <label>สิทธิ์ผู้ใช้</label> <select name="role" class="form-select"> <option value="user">User</option> <option value="admin">Admin</option> </select> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">ยกเลิก</button> <button type="submit" name="add_user" class="btn btn-primary">บันทึก</button> </div> </form> </div> </div> </div> <?php else: ?> <!-- ✅ หน้าสำหรับ User ธรรมดา --> <div class="card shadow-sm"> <div class="card-header bg-info text-white fw-bold">🔒 เปลี่ยนรหัสผ่านของฉัน</div> <div class="card-body"> <form method="post"> <div class="mb-3"> <label>รหัสผ่านเดิม</label> <input type="password" name="old_password" class="form-control" required> </div> <div class="mb-3"> <label>รหัสผ่านใหม่</label> <input type="password" name="new_password" class="form-control" required> </div> <button type="submit" name="change_password" class="btn btn-info text-white">บันทึกรหัสผ่านใหม่</button> </form> </div> </div> <?php endif; ?> </div> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> </body> </html>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.4 |
proxy
|
phpinfo
|
Settings