- CodeIgniter 教程
- CodeIgniter - 首頁
- CodeIgniter - 概述
- CodeIgniter - 安裝 CodeIgniter
- CodeIgniter - 應用程式架構
- CodeIgniter - MVC 框架
- CodeIgniter - 基本概念
- CodeIgniter - 配置
- CodeIgniter - 使用資料庫
- CodeIgniter - 庫
- CodeIgniter - 錯誤處理
- CodeIgniter - 檔案上傳
- CodeIgniter - 傳送郵件
- CodeIgniter - 表單驗證
- CodeIgniter - 會話管理
- CodeIgniter - Flashdata
- CodeIgniter - Tempdata
- CodeIgniter - Cookie 管理
- CodeIgniter - 常用函式
- CodeIgniter - 頁面快取
- CodeIgniter - 頁面重定向
- CodeIgniter - 應用程式效能分析
- CodeIgniter - 基準測試
- CodeIgniter - 新增 JS 和 CSS
- CodeIgniter - 國際化
- CodeIgniter - 安全性
- CodeIgniter 有用資源
- CodeIgniter - 快速指南
- CodeIgniter - 有用資源
- CodeIgniter - 討論
CodeIgniter - 會話管理
在構建網站時,我們經常需要跟蹤使用者的活動和狀態,為此,我們必須使用會話。CodeIgniter 為此目的提供了會話類。
初始化會話
會話資料在整個站點中全域性可用,但要使用這些資料,我們首先需要初始化會話。我們可以在建構函式中執行以下行來實現這一點。
$this->load->library('session');
載入會話庫後,您可以像下面所示簡單地使用會話物件。
$this->session
新增會話資料
在 PHP 中,我們只需使用$_SESSION陣列在會話中設定任何資料,如下所示。
$_SESSION[‘key’] = value;
其中“key”是陣列的鍵,“value”分配在等號右側。
在 CodeIgniter 中可以執行相同操作,如下所示。
$this->session->set_userdata('some_name', 'some_value');
set_userdata()函式接受兩個引數。第一個引數some_name是會話變數的名稱,some_value將儲存在該名稱下。
set_userdata()函式還支援另一種語法,您可以在其中傳遞陣列來儲存值,如下所示。
$newdata = array( 'username' => 'johndoe', 'email' => 'johndoe@some-site.com', 'logged_in' => TRUE ); $this->session->set_userdata($newdata);
刪除會話資料
在 PHP 中,我們可以使用unset()函式刪除儲存在會話中的資料,如下所示。
unset($_SESSION[‘some_name’]);
在 CodeIgniter 中刪除會話資料非常簡單,如下所示。下面版本的unset_userdata()函式將僅從會話中刪除一個變數。
$this->session->unset_userdata('some_name');
如果要從會話中刪除更多值或刪除整個陣列,可以使用下面版本的unset_userdata()函式。
$this->session->unset_userdata($array_items);
獲取會話資料
在會話中設定資料後,我們還可以檢索該資料,如下所示。userdata()函式將用於此目的。如果要訪問的資料不可用,此函式將返回NULL。
$name = $this->session->userdata('name');
示例
建立一個名為Session_controller.php的控制器類,並將其儲存在application/controller/Session_controller.php中。
<?php
class Session_controller extends CI_Controller {
public function index() {
//loading session library
$this->load->library('session');
//adding data to session
$this->session->set_userdata('name','virat');
$this->load->view('session_view');
}
public function unset_session_data() {
//loading session library
$this->load->library('session');
//removing session data
$this->session->unset_userdata('name');
$this->load->view('session_view');
}
}
?>
建立一個名為session_view.php的檢視檔案,並將其儲存在application/views/session_view.php中。
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>CodeIgniter Session Example</title>
</head>
<body>
Welcome <?php echo $this->session->userdata('name'); ?>
<br>
<a href = 'https://:85/CodeIgniter-3.0.1/CodeIgniter3.0.1/index.php/sessionex/unset'>
Click Here</a> to unset session data.
</body>
</html>
在application/config/routes.php中的routes.php檔案中進行更改,並在檔案末尾新增以下行。
$route['sessionex'] = 'Session_Controller';
使用以下地址執行上述示例。將yoursite.com替換為您站點的URL。
http://yoursite.com/index.php/sessionex