Session đóng vai trò khá quan trọng trong một website bởi hầu hết website nào cũng phải sử dụng nó, thường dùng nhất là trong hệ thống quản lý admin. Chúng ta sẽ sử dụng Session để lưu trữ trạng thái đăng nhập và cấp độ của người dùng để từ đó có thể cung cấp các quyền hợp lý.
Khi sử dụng Session chúng ta sẽ thực hiện các thao tác get, set và delete. Đây là ba thao tác hay sử dụng nhất nên chúng ta sẽ viết nó thành một thư viện để tiện sử dụng.
1. Viết thư viện Session
Các bạn mở file libs/session.php
lên và nhập nội dung sau:
Bài viết này được đăng tại [kiso.vn]
// Gán session (SET) function session_set($key, $val){ $_SESSION[$key] = $val; } // Lấy session (GET) function session_get($key){ return (isset($_SESSION[$key])) ? $_SESSION[$key] : false; } // Xóa session (DELETE) function session_delete($key){ if (isset($_SESSION[$key])){ unset($_SESSION[$key]); } }
Mình sẽ giải thích từng hàm như sau:
Hàm gán session:
function session_set($key, $val){ $_SESSION[$key] = $val; }
Hàm này là phép gán nên ta gán bình thường, không có gì phức tạp cả.
Hàm lấy session:
function session_get($key){ return (isset($_SESSION[$key])) ? $_SESSION[$key] : false; }
Trước khi lấy một key nào đó trong Session thì ta phải kiểm tra key đó có tồn tại hay không, nếu có thì mới lấy và ngược lại thì trả về giá trị FALSE
.
Toán tử mà ta dùng trong trường hợp này gọi là toán tử ba ngôi. Nếu viết bình thường thì nó sẽ như sau:
function session_get($key){ if (isset($_SESSION[$key])){ return $_SESSION[$key]; } return false; }
Xóa session:
function session_delete($key){ if (isset($_SESSION[$key])){ unset($_SESSION[$key]); } }
Trước khi xóa thì chúng ta kiểm tra nó có tồn tại hay không? Chúng ta sử dụng hàm unset để xóa.
2. Lời kết
Như vậy là ta đã viết xong thư viện xử lý database bằng PHP, bài tiếp theo chúng ta sẽ tìm hiểu cách viết thư viện xử lý vấn đề phân quyền và đăng nhập.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Viết thư viện SessionHàm gán session:Hàm lấy session:Xóa...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Viết thư viện SessionHàm gán session:Hàm lấy session:Xóa session:2. Lời kết1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một firewall được phát...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Viết thư viện SessionHàm gán session:Hàm lấy session:Xóa session:2. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web sử dụng đường...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Viết thư viện SessionHàm gán session:Hàm lấy session:Xóa session:2. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng các hàm đọc...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Viết thư viện SessionHàm gán session:Hàm lấy session:Xóa session:2. Lời kếtIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất hiện các lỗ...