Đăng ngày: 18-03-2016 · cập nhật lần cuối: 23-03-2016 · bởi skillaug_vn

Session là gì?

Hiểu nôm na thì Session trong PHP chính là phiên làm việc của người dùng với một Ứng Dụng Web, Session được sử dụng trong rất nhiều mục đích, thông thường Session được sử dụng để lưu trữ dữ liệu của người dùng (ví dụ: tên người dùng, các mặt hàng mua sắm...) cho các lần truy cập trong tiếp theo.

Ví dụ

Trên cùng một thư mục, các bạn tạo 3 file sau:
File taosession.php
<?php
session_start();
$_SESSION['name'] = 'Lưu Thanh Sang';
echo '<a href="sudungsession.php">xem điều gì tiếp theo</a>';
?>
File sudungsession.php
<?php
echo 'Tên của bạn là: '.$_SESSION['name'];
echo '<a href="huybosession.php">xem điều gì tiếp theo</a>';
?>
File huybosession.php
<?php
session_start();
session_destroy();
echo '<a href="sudungsession.php">Quay lại xem</a>';
?>
Bây giờ thì chạy file taosession.php lên bạn sẽ thấy tác dụng của Session.

Session hoạt động như thế nào?

Để các bạn hiểu rõ hơn, mình sẽ trình bày sơ qua về cách mà Session hoạt động với các tham số truyền vào là mặc định: Khi người dùng truy cập vào một trang web mà tại đó Session được bắt đầu session_start() thì lúc này máy chủ web sẽ thực hiện 2 công việc:

- Công việc 1: gửi đến trình duyệt một Cookie có tên là PHPSESSID với giá trị chính là session_id() nó tương tự: lijo9egtjnhs0mqn8erf515f63 với thời gian sống là khi phiên duyệt kết thúc (tức là đóng trình duyệt)

- Công việc 2: được thực hiện trên máy chủ web, tạo một file với tên có cấu trúc như sau: sess_<id của session> ví dụ sess_lijo9egtjnhs0mqn8erf515f63 trong file này sẽ chứa dữ liệu của người dùng ví dụ: tên người dùng, các mặt hàng mua sắm...

Như vậy là ta cũng nhận ra một điều là nhờ việc so sánh sự tương đồng giữa Cookie trên trình duyệt người dùng và file Session được lưu trên máy chủ mà máy chủ nhận biết được người dùng đó là ai, có những dữ liệu lưu trữ là gì...

Một số Tham số cơ bản về Session trong PHP (file php.ini)



session.name=PHPSESSID thiết đặt tên Session là PHPSESSID và đây cũng là tên được sử dụng cho Cookie gửi đến trình duyệt người dùng.

session.cookie_lifetime=0 thiết đặt thời gian sống cho Session Cookie gửi đến cho trình duyệt người dùng (tính bằng giây) ở đây mặc định là 0 tức là Cookie này sẽ bị hủy khi người dùng đóng trình duyệt, nếu ta đặt số lớn hơn 0 ví dụ: session.cookie_lifetime=1800 thì sau 30 phút kể từ phiên làm việc cuối cùng Session Cookie trên trình duyệt người dùng sẽ bị xóa.

session.save_path="D:skillaug_vn/tmp" thiết đặt đường dẫn lưu trữ Session.
1