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:
session
sess_time_to_update 300 Thời gian (tính bằng giây)
session sẽ được tái tạo
sess_match_ip FALSE TRUE/FALSE
Cho biết có so sánh địa chỉ IP khi đọc dữ liệu session hay không. Đối với IP động, nên cho tùy chọn này là FALSE.
sess_match_useragent FALSE TRUE/FALSE
Cho biết có so sánh thông tin trình duyệt khi đọc dữ liệu session hay không.
$this->session->userdatắip_ađress');
Nếu khóa không tồn tại, phương thức trả về FALSE.
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: $this->session->sess_destroy();