Đi qua một loạt 7 phần trong chuỗi seri Tạo website bằng PHP, trong phần này mình tiếp tục hướng dẫn cách tạo phân quyền cho website PHP

Giới thiệu về phân quyền cho website PHP

Phân quyền chính là cách thức mà chúng ta chỉ định những quyền được phép và không được phép cho một tài khoản nào đó. Chẳng hạn như trong hệ thống chúng ta hiện có 3 user có 3 quyền khác nhau.

  • user A : chỉ được phép xem bài viết ngoài ra không được làm gì cả
  • user B : được xem bài viết và tạo bài viết của riêng mình
  • user C : được quyền cao nhất và sử dụng toàn bộ hệ thống như thêm bài viết, xóa bài viết, thêm thành viên, xóa thành viên, chỉnh sửa các chức năng quan trọng của website,…

Một hệ thống phân quyền có khi sẽ rất đơn giản, nhưng đôi khi cũng sẽ rất phức tạp tùy vào quy mô website của chúng ta lớn hay nhỏ.

Trong phạm vi bài viết ngày hôm nay, mình sẽ thiết kế một hệ thống phân quyền cho website PHP đơn giản để các bạn có thể nắm được cơ bản về nó, sau này đi sâu về các bài viết sau này hoặc khi xây dựng những website lớn hơn, các bạn sẽ tự tạo cho mình một hệ thống phân quyền khác phức tạp hơn.

Tạo phân quyền cho website PHP

a. Tạo file permission.php

Trong phạm vi bài viết này mình sẽ hướng dẫn các bạn tạo phân quyền đơn giản bao gồm :

  • Nếu người dùng chưa đăng nhập thì khi cố tính truy cập vào những trang bên trang quản trị thì sẽ bị chuyển hướng ra lại trang đăng nhập
  • Nếu người dùng đã đăng nhập nhưng không có quyền admin thì sẽ nhận thông báo không có đủ quyền truy cập

Bên trong thư mục admin/includes, bạn tạo 1 file và đăt tên là permission.php. Bên trong file này các bạn gõ code theo như dưới đây :

b. Giải thích

Kiểm tra người dùng đã đăng nhập hay chưa

Các bạn nhìn đoạn code dưới đây

đây là đoạn code kiểm tra người dùng đó đã đăng nhập hay chưa bằng cách sử dụng hàm isset. Nó dùng để kiểm tra xem một giá trị có được thiết lập hay không. Rõ ràng chúng ta thấy nếu như người dùng chưa đăng nhập, tức là $_SESSSION[‘user_id’], sẽ không tồn tại (xem lại bài Tạo trang đăng nhập), thì ngay lập túc chúng ta sẽ sử dụng hàm header để chuyển hướng người dùng về trang đăng nhập bằng cách sử dụng hàm header như sau

Kiểm tra quyền quản trị của người dùng

Nếu như người dùng đã đăng nhập, thì ta sẽ tiến hành kiểm tra xem người đó có đủ quyền để truy cập vào những trang quản trị hay không.

Đầu tiên ta sẽ kiểm tra xem có tồn tại quyền người dùng bằng đoạn code sau

Nếu tồn tại ta sẽ tiếp tục lấy giá trị của biến $_SESSION[‘permission’] này

Sau khi đã lấy được giá trị $permission ta sẽ kiểm tra xem người này có phải admin hay ko (ta quy ước permission phải lớn hơn 0 thì mới là admin ), nếu không thì sẽ chuyển hướng người dùng ra lại trang chủ index.php

c. Tiến hành áp dụng phân quyền cho website PHP

Ở 2 bước trên, mình đã tạo xong file permission.php, giờ thì mình sẽ include file này vào bất kì một file nào bên trong folder admin để kiểm tra phân quyên trên file đó.

Hiện giờ bên trong folder admin của chúng ta chỉ có 1 file là them-bai-viet.php. Nên ta sẽ tiến hành áp dụng phân quyền cho file này trước, sau này nếu có nhiều file hơn thì ta vẫn áp dụng tương tự

Các bạn mở lại file them-bai-viet.php và thêm đoạn code này vào

khi đó, toàn bộ nội dung trang them-bai-viet.php của chúng ta sẽ như sau :

d. Tiến hành chạy thử file them-bai-viet.php

Tiến hành kiểm tra chức năng chuyển hướng ra trang dang-nhap.php nếu người dùng chưa đăng nhập.

Các bạn không đăng nhập gì cả, mà hãy truy cập thẳng vào địa chỉ sau:

các bạn sẽ thấy ngay lập tức mình bị chuyển hướng qua lại trang chủ.

Tiến hành kiểm tra chức năng thông báo khi người dùng đã đăng nhập nhưng không đủ quyền

Các bạn đăng nhập vào website với user có giá trị permission = 0, thì sẽ thấy hiện ra thông báo không đủ quyền truy cập như sau :

tạo phân quyền cho website php
Thông báo không đủ quyền truy cập

Tổng kết

Kêt thúc bài viết về phân quyền trong website php, mình đã hướng dẫn các bạn đơn giản cách phân quyền. Thực ra phân quyền cho website nó không đơn giản chỉ là phân quyền như mình đã hướng dẫn, nhưng nó là nền tảng để các bạn có thể tạo ra những phân quyền khác dành cho các hệ thống lớn hơn.

Nếu có bất kỳ thắc mắc về hướng dẫn của mình, để lại bình luận bên dưới mình sẽ trả lời sớm nhất có thể.

Ngoài ra nếu bạn có góp ý nào về bài viết này, mình rất hoan nghênh để chúng ta cùng nhau phát triển.

Chúc các bạn học tốt,

Thân !

Gửi bình luận bằng Facebook

Bài viết liên quan

Bài 1 : Lập trình web là gì
Bài 7 : Toán tử là gì ? Giới thiệu về toán tử trong PHP
Bài 8 : Cấu trúc điều khiển, các câu lệnh điều kiện, vòng lặp trong PHP
PHP cơ bản : Tạo form đăng ký, đăng nhập (phần 1)
PHP cơ bản : Tạo form đăng ký, đăng nhập (phần 2)
Hướng dẫn tạo trang quản lý thành viên PHP - cập nhật thông tin user (phần 3)
Hướng dẫn tạo trang quản lý thành viên PHP - Xóa User ra khỏi hệ thống (phần 4 - Kết thúc)
Tạo trang hiển thị nội dung bài viết - Tạo website bằng PHP (phần 7)
Tích hợp ckeditor vào php - chức năng thêm bài viết (phần 9)
Thiết kế giao diện trang quản lý thành viên (Phần 10)
Hiển thị thông tin lên trang danh sách thành viên (Phần 11)
Tạo trang chỉnh sửa thông tin thành viên (Phần 12)
loading...