Trong bài này, mọi người sẽ tìm hiểu về session trong PHP. Để học tốt bài này, những người cần đọc lại bài Thiết lập môi trường xung quanh lập trình Web PHP với XAMPP để biết phương pháp chạy ứng dụng web PHP với XAMPP.
1. Session là gì?
Session là một phương pháp để lưu trữ thông tin được tận dụng trên nhiều trang (page) của một website. Khác với cookie, session chỉ được lưu trữ trên web server.
Khi truy vấn một website, user rất có thể chuyển request từ trang này sang trang khác. Ví dụ, user vào trang login để đăng nhập. Tiếp sau đó, user vào trang product để sở hữu thành phầm. tin tức user login phải được lưu trữ lại để tránh việc user phải đăng nhập lại khi qua trang khác.
Session giúp giải quyết và xử lý vấn đề này bằng phương pháp lưu trữ thông tin user để tận dụng trên nhiều trang như username, product_id,… Mặc định, những session sẽ tồn tại cho đến lúc user đóng trình duyệt.
Trong PHP, những session được tạo và lưu trữ trong một thư mục tạm. Thư mục này được thiết lập trong file php.ini (mở file php.ini xem hướng dẫn ở phần Thay đổi default timezone trong PHP) với thông số kỹ thuật session.save_path. Mặc định, session.save_path=”C:xampptmp”.
2. Chính thức một session trong PHP
Trong PHP, mọi người tận dụng hàm session_start() để chính thức một session. Toàn bộ những tài liệu trong session được lưu trữ bởi biến mảng $_SESSION.
<?php // Start the session session_start(); ?> <htmlandgt; <headandgt; <titleandgt;Session in PHPandlt;/titleandgt; </headandgt; <bodyandgt; <?php // Set session variables $_SESSION[“domainname”] = “gochocit.com”; $_SESSION[“numberpost”] = “410”; echo “Session variables are set.”; ?> <brandgt; <a href=”session1.php”>session1 pageandlt;/aandgt; <brandgt; <a href=”session2.php”>session2 pageandlt;/aandgt; </bodyandgt; </htmlandgt;
Trong ví dụ trên, mọi người gọi hàm session_start() để chính thức một session. Tiếp sau đó, một vài giá trị được lưu trong session bằng biến mảng $_SESSION. Và session1 page và session2 page là những trang khác trong website.
Lưu ý: Hàm session_start() phải được gọi trước tiên trong file php, trước thẻ <htmlandgt;.
3. Lấy những giá trị lưu trong session với PHP
Ở session1 page, mọi người sẽ lấy những giá trị được lưu trong session.
<?php // Start the session session_start(); ?> <htmlandgt; <headandgt; <titleandgt;Session1 page in PHPandlt;/titleandgt; </headandgt; <bodyandgt; <?php echo “<bandgt;Domain name isandlt;/bandgt; ” . $_SESSION[“domainname”] . “.<brandgt;”; echo “<bandgt;Number of post isandlt;/bandgt; ” . $_SESSION[“numberpost”] . “.<brandgt;”; ?> </bodyandgt; </htmlandgt;
Mọi người rất có thể xem toàn bộ giá trị được lưu trong session bằng những in ra biến mảng $_SESSION.
<?php // Start the session session_start(); ?> <htmlandgt; <headandgt; <titleandgt;Session2 page in PHPandlt;/titleandgt; </headandgt; <bodyandgt; <?php print_r($_SESSION); echo “<brandgt;session id: “.session_id(); ?> </bodyandgt; </htmlandgt;
Thành phẩm
Array ( [domainname] => gochocit.com [numberpost] => 410 ) session id: 58j58aoogh7mktkmkohce6npns
Khi một user truy vấn đến website và chính thức một session thì session này sẽ được gán một session id. Tận dụng hàm session_id() để lấy session id của session ngày nay.
4. Thay đổi và xóa session trong PHP
Để thay đổi những giá trị lưu trong session, mọi người chỉ việc gán lại lại giá trị cho những biến lưu trong session.
<?php // Start the session session_start(); ?> <htmlandgt; <headandgt; <titleandgt;Session2 page in PHPandlt;/titleandgt; </headandgt; <bodyandgt; <?php // to change a session variable, just overwrite it $_SESSION[“domainname”] = “en.gochocit.com”; print_r($_SESSION); ?> </bodyandgt; </htmlandgt;
Để xóa toàn bộ giá trị lưu trong session và hủy luôn luôn session thì tận dụng hàm session_unset() và session_destroy().
<?php // Start the session session_start(); ?> <htmlandgt; <headandgt; <titleandgt;Session2 page in PHPandlt;/titleandgt; </headandgt; <bodyandgt; <?php // remove all session variables session_unset(); // destroy the session session_destroy(); ?> </bodyandgt; </htmlandgt;
Mọi người vừa tìm hiểu cách tận dụng session trong PHP. Những người cần nắm vững những tri thức này vì chúng sẽ tiến hành tận dụng rất nhiều trong lập trình web.
Bài trước và bài sau trong môn họcandlt;< Cookie là gì? Tận dụng cookie trong PHPXử lý tài liệu JSON trong PHP >>