1. Giới thiệu
3.6.2. Cách thức hoạt động
Khi một trang được tải về, CodeIgniter sẽ kiểm tra có dữ liệu session hợp lệ trong cookie của người dùng hay không. Nếu session không tồn tại hoặc đ~ hết hạn, một session mới sẽ được tạo ra v{ lưu v{o cookie của người dùng. Nếu session tồn tại, thông tin bên trong session sẽ được cập nhật và một session_id sẽ được tạo rạ
Thông tin session là một mảng chứa các giá trị sau:
session_id: Một Session ID là một hash với độ tinh khiết cao, được mã hóa bằng thuật toán MD5 m{ được cập nhật sau mỗi 5 phút. Ta có thể thay đổi thời gian cập nhật này bằng cách thiết lập giá trị biến $config['time_to_updaté] trong tập tin
system/config/config.php.
ip_ađress: Địa chỉ IP của người dùng
user_agent: User Agent: 50 ký tự đầu tiên về thông tin trình duyệt của người dùng
last_activity: Timestamp chứa hoạt động cuối của người dùng
Các thông tin này sẽ được mã hóa nhằm nâng cao tính bảo mật, giúp ngăn chặn người kh|c thay đổi hay đọc session.
Lấy thông tin từ session
Để lấy thông tin từ session, ta sử dụng phương thức userdată) như sau:
$this->session->userdatăstring $item);
Với $item là khóa của mảng chứa thông tin session. Chẳng hạn, để lấy địa chỉ IP của người dùng, ta sử dụng:
Trang 81
$this->session->userdatắip_ađress');
Nếu khóa không tồn tại, phương thức trả về FALSẸ
Thêm thông tin vào session
Để thêm một thông tin vào session hiện tại, ta sử dụng phương thức set_userdată)
như sau:
$this->session->set_userdatăarray $data);
Trong đó mảng $data có khóa là tên của thông tin và giá trị tương ứng của thông tin đó. Ví dụ: $newdata = array( 'usernamé => 'johndoé, 'email' => 'johndoe@some-sitẹcom', 'logged_in' => TRUE ); $this->session->set_userdată$newdata);
Hoặc ta cũng có thể thêm thông tin theo cách sau:
$this->session->set_userdatăstring $item, string $value);
Xóa thông tin trong session
Để xóa thông tin trong session, ta sử dụng phương thức unset_userdată) như sau:
$this->session->unset_userdatăstring $item);
Hoặc
$this->session->unset_userdatăarray $items);
Trong trường hợp sử dụng mảng, ta khai báo mảng như sau:
$array_items = array('usernamé => '', 'email' => ''); $this->session->unset_userdată$array_items);
Xóa tất cả session
Để xóa tất cả session, ta sử dụng phương thức sess_destroy() như sau:
Trang 82