Session trong CakePHP cũng như biến $_SESSION nó cung cấp một cách lưu lại dữ liệu của người dùng giữa các trang.

Khai báo:

Chúng ta đã tìm hiểu Helper và Component thông qua 2 biến $helper và $component

Cách khai báo của chúng như sau:

[code language=”php”]
public $helpers = array(‘Html’,’Form’);
public $components = array(‘Data’, ‘Acl’);
[/code]

Các thành phần trên: Html, Form, Data, Acl… phải khai báo đúng vào 2 biến $helper, $component. Nhưng đối với Session thì khai báo ở biến nào cũng có thể sử dụng(mình thường dùng trong biến $component)

[code language=”php”]
public $helper = array(‘Html’,’Session’);
public $components = array(‘Data’,’Session’);
[/code]

Sử dụng:

1) Tạo session: write($name, $value)

– Lưu session có giá trị $value và biến $name.

– $name có thể sử dung thêm dấu “.” để tạo thành mảng

[code language=”php”]
//Viết theo cách bình thường
$this->Session->write(‘Username’,’nongdanit’);
//Viết theo dạng mảng Name
$this->Session->write(‘Name.fullname’,’Nguyen Van A’);
$this->Session->write(‘Name.email’,’[email protected]’);
[/code]

2) Gọi session : read($name) sử dụng giá trị của session thông qua $name

Gọi lại session đã tạo ở trên:

[code language=”php”]
echo $this->Session->read(‘Username’);// nongdanit
$mang = $this->Session->read(‘Name’);// biến $mang là một array
[/code]

3) Kiểm tra session: check($name) kiểm tra xem có tồn tại session có tên $name hay không return ra true hoặc false

[code language=”php”]
if($this->Session->check(‘Username’)){

//return true

}else{

//return false

}
[/code]

4) Đọc và xóa: consume($name) đọc và xóa giá trị session có tên $name, điều này hữu ít khi muốn đọc và xóa session ngay

[code language=”php”]
$abc = $this->Session->consume(‘Username’);
[/code]

5) Xóa session: delete($name) xóa giá trị session có tên $name

[code language=”php”]
$this->Session->delete(‘Username’); //Xóa session bình thường
$this->Session->delete(‘Name.email’);// Xóa 1 session trong mảng
$this->Session->delete(‘Name’); //Xóa toàn bộ session trong mảng
[/code]

6) Xóa toàn bộ cookie và session: destroy()

[code language=”php”]
$this->Session->destroy();
[/code]

7) Tạo thông báo: setFlash(string $message, string $element = ‘default’, array $params = array(), string $key = ‘flash’)

– $message: nội dung thông báo.

– $element: mặc định là default, load file hiển thị nội dung thông báo (một templete) là file .ctp trong thư mục app/View/Elements/

– $params: chứa các thuộc tính về  id, class, style,…

– $key: có thể rỗng mặc định là flash

Ví dụ: ta tạo file thông báo flash_custom.ctp trong thư mục app/View/Elements/ có nội dung

[code language=”html”]
<div id="abc" class=’ex’ style="color: red;"><?php echo $message; ?></div>
[/code]

Sau đó thực hiện lệnh trong controller là:

[code language=”php”]
$this->Session->setFlash(
‘Example message text flash_custom’,
‘flash_custom’
);
[/code]

Khi được hiển thị ngoài view thì flash_custom.ctp sẽ là:

[code language=”html”]
<div id="abc" class="ex" style="color: red;">Example message text flash_custom </div>
[/code]

Bài hướng dẫn đến đây là hết. Các bạn tải các file về chạy thử với url: http://localhost:8080/cakephp/sessions/index

2015-10-19_164110

[create_button_post thamso1=” thamso2=’Demo’ thamso3=’http://nongdanit.info/download/cakephp/bai11/bai-11.rar’] [/create_button_post]

[thongbao]

  1. Nếu có thắc mắc gì các bạn để lại comment bên dưới mình sẽ trả lời sớm nhất có thể.
  2. Cảm ơn các bạn đã đọc.

[/thongbao]

[Cakephp] Bài 11 – Sử dụng session trong CakePHP

Comments are closed.