/ / Codeigniter / Comment (0)

Thư viện Session trong CodeIgniter

Đây là 1 thư viện được CodeIgniter hỗ trợ nhằm thực hiện việc duy trì trạng thái và hoạt động của người dùng trong khi họ duyệt trang web.Các bạn có thể xem lại bài viết phiên làm việc trong php để hiểu rõ hơn về định nghĩa về nó nhé.

– Session trong CI(codeigniter) là một mảng chứa các thông tin như:

  1. ID là duy nhất của người sử dụng, được mã hóa bằng md5 được tự động sinh ra khi tạo session
  2. Địa chỉ IP của người dùng
  3. User Agent(trình duyệt) của người sử dụng
  4. timestamp(thời gian truy cập gần nhất)

– Lấy các tham số:

    $this->session->userdata('tham_số');

Ví dụ:

$id            = $this->session->userdata('session_id');
$ip_address    = $this->session->userdata('ip_address');
$user_agent    = $this->session->userdata('user_agent');
$last_activity = $this->session->userdata('last_activity');

Sử dụng thư viện

Load thư viện

Cũng như các thư viện khác trong CodeIgniter khi muốn sử dụng thư viện nào chúng ta cần load thư viện đó ra,để sử dụng thư viện này ta sẽ load như sau

$this->load->library('session');

Hoặc có thể vào file application/config/autoload.php để tự động load thư viện này:

$autoload['libraries'] = array('session');

Cấu hình key
– Khi muốn sử dụng thư viện này chúng ta cần phải cấu hình key cho nó,các bạn có truy cập vào application/config/config.php tìm tới đoạn code cấu hinh:

$config['encryption_key'] = ‘key';

Trong đó key có thể là chuỗi bất kỳ mà bạn gắn vào.

Lưu thông tin

– Cú pháp:

$this->session->set_userdata('tên biến', 'giá_trị_cần_lưu')

Trong đó giá trị cần lưu có thể là 1 giá trị hoặc mảng các giá trị
– Ví dụ:

$userdata = array(
                 ‘name'      => ‘hocphp',
                 'email'     => ‘hocphp@gmail.com',
                 'logged_in' => TRUE
           );
$this->session->set_userdata('userInfo', $userdata);

Với ví dụ trên chúng ta đang thực hiện lưu 1 mảng các giá trị vào biến có tên là userInfo

Lấy thông tin từ mảng session

Khi mà các bạn đã lưu dữ liệu vào 1 biến nào đó mà muốn lấy ra sử dụng thì chúng ta sử dụng theo cú pháp sau:

$this->session->userdata('tên_session')

lấy toàn bộ session

$this->session->all_userdata(); 

– Ví dụ:
Với mảng dữ liệu đã lưu vào trong biến userInfo như ví dụ trên

$userdata = $this->session->userdata('userInfo');
Print_r($userdata);

và kết quả sẽ như sau:

Array
(
[name] => hocphp
[email] => hocphp@gmail.com
[logged_in] => 1
)

Hủy session

– Cú pháp:

$this->session->unset_userdata('some_name');

Nếu muốn hủy tất cả các session hiện tại, thì chúng ta dùng hàm

$this->session->sess_destroy()

Sử dụng flashdata

– Trong CI hỗ trợ “flashdata” nó rất hữu ích trong việc tạo ra các câu thông báo, hoặc thông tin trạng thái

Để tạo ra flashdata:

   $this->session->set_flashdata(‘name','value');

Để đọc 1 flashdata:

   $this->session->flashdata(‘name');

Ví dụ:

$this->session->set_flashdata(‘login',’Bạn đã đăng nhập thành công');
if($this->session->flashdata(‘login'))
{
   echo $this->session->flashdata(‘login');
}

Kết thúc bài viết: Qua bài này mình đã giới thiệu cho các bạn cách tạo ra 1 session và cách sử dụng nó.Đây là 1 thư viện khá quan trọng và có ứng dụng trong thực tế,ví dụ các chức năng như đăng nhập,lưu thông tin chuyển sang trang khác…Sang bài sau mình sẽ hướng dẫn các bạn sử dụng thư viện phân trang (Paginator) trong CodeIgniter



05/09/2014
Written by nobitacnt

Trong bài viết không tránh khỏi những câu từ chưa chính xác,mong nhận được sự góp ý để website hoàn thiện hơn.Nếu thấy bài viết có ích với bạn hãy like và share để ủng hộ nhé :D.

Bài viết chùng chuyên mục

Gửi bình luận

Giới thiệu

Mình tạo ra blog này với mong muốn chia sẻ và học hỏi kinh nghiệm trong quá trình thiết kế website. Website đang trong quá trình phát triển chân thành cảm ơn mọi sự góp ý của các bạn để làm cho website ngày càng hoàn thiên.

DMCA.com Protection Status
Theo dõi qua Email

Tổng hợp các bài viết về

Hoc php - CodeIgniter Framework - Laravel Framework - PHP va MYSQL