Cách thức hoạt động

Một phần của tài liệu Hướng dẫn học framework codeigniter (Trang 80 - 82)

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

Một phần của tài liệu Hướng dẫn học framework codeigniter (Trang 80 - 82)