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
[create_button_post thamso1=” thamso2=’Demo’ thamso3=’http://nongdanit.info/download/cakephp/bai11/bai-11.rar’] [/create_button_post]
[thongbao]
- 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ể.
- Cảm ơn các bạn đã đọc.
[/thongbao]
Comments are closed.