Blog

Bài viết trước chúng ta đã tìm hiểu cách upload file trong Codeigniter. Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu thêm 1 thư viện đó là Session.

Trong Codeigniter session là 1 mảng lưu trữ các giá trị: ID, User agent, IP và thời gian truy cập gần nhất của người dùng

Trước khi bắt đầu

Rõ ràng như đã học ở bài viết trước, trước khi Thiết kế 1 website bán hàng hay công ty,… với Codeigniter chúng ta cần phải gọi thư viện của nó trước, vậy trước khi bắt đầu sử dụng Session trong Codeigniter bạn cần phải gọi thư viện theo cú pháp

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

Sau khi đã gọi chúng ta chỉ việc bắt đầu bằng cách sử dụng:

$this->session->phuongthuc();

Sử dụng Session trong Codeigniter như thế nào?

Khởi tạo

Như trong PHP cơ bản các bạn đã học tại Công ty thiết kế website công ty OTVINA để tạo SESSION 1 cách đơn giản chúng ta làm như sau:

session_start();
$_SESSION['tensession']='giatri';

với tensession chính là khóa của mảng session và giatri là giá trị của key đó.

Trong Codeigniter để tạo session chúng ta làm như sau:

<?php
$this->session->set_userdata($array);
?>

Với phương thức set_userdata() được sử dụng để khởi tạo session, $array là 1 mảng bao gồm các key và giá trị session.

Ví dụ: Khởi tạo session khi đăng ký thành viên trong khóa trình thiết kế website chuyên nghiệp

$newdata = array( 
   'username'  => 'vucongtinh', 
   'email'     => 'vucongtinh@gmail.com', 
   'is_member' => TRUE
);  
$this->session->set_userdata($newdata);

 Lấy giá trị session

Như vậy chúng ta đã xong phần khởi tạo session, trong quá trình thiet ke web chắc chắn chúng ta sẽ phải dùng rất nhiều session, trong PHP cơ bản các bạn đã biết để lấy giá trị của session đã lưu chúng ta sử dụng:

<?php
echo $_SESSION['key']
?>

đối với Codeigniter để lấy được giá trị của session các bạn sử dụng cú pháp:

$this->session->userdata('tenkey');

 Ví dụ: Lấy thông tin session của thành viên để in 1 câu chào lên header

1. Tạo controller: index.php

<?php
class Index extends CI_Controller{

public function index(){
$this->load->library('session');//Gọi thư viện session
$userdata=array('username'=>'vucongtinh','name'=>'Vũ Công Tịnh');
$this->load->view('home');
}
}
?>

 2. Hiển thị trên view: home.php

<!DOCTYPE html>
<html>
<head>
<title>Học Thiết kế website cùng Công ty Thiết kế website OTVINA</title>
</head>
<body>
Xin chào <?php echo $this->session->userdata('name');?>
</body>
</html>

 Kết quả:

Xin chào Vũ Công Tịnh

Hoặc bạn có thể đẩy dữ liệu vào 1 biến rồi đẩy giá trị biến đó qua view như đã tìm hiểu ở bài viết View trong Codeigniter

Xóa session

Khi làm website đôi khi bạn sẽ cần chủ động xóa giá trị của session, ví dụ chức năng thoát tài khoản,…

Để xóa session trong Codeigniter bạn sử dụng phương thức unser_userdata();

$this->session->unset_userdata($name);
//hoặc xóa nhiều session
$this->session->unset_userdata($array);//Bao gồm 1 mảng tên các session cần xóa

Ví dụ

$this->session->unset_userdata('username');
//hoặc xóa nhiều session
$this->session->unset_userdata(array('username','name'));//Bao gồm 1 mảng tên các session cần xóa

Để xóa tất cả các session chúng ta sử dụng phương thức sess_destroy();

$this->session->sess_destroy();

Như vậy chúng ta đã xong các kiến thức về Session trong Codeigniter, ở các bài viết sau Công ty thiết kế web nhà hàng OTVINA sẽ cùng các bạn làm chức năng đăng nhập và đăng xuất trong Codeigniter.

Hẹn các bạn ở các bài tiếp, đừng quên like và share nếu bài viết hữu ích <3