CodeIgniter 會(huì)話管理

codeigniter 會(huì)話管理

 

在構(gòu)建網(wǎng)站時(shí),我們經(jīng)常需要跟蹤用戶(hù)的活動(dòng)和狀態(tài),為此,我們必須使用 session。 codeigniter 具有用于此目的的會(huì)話類(lèi)。

 

初始化會(huì)話

會(huì)話數(shù)據(jù)可通過(guò)站點(diǎn)全局訪問(wèn),但要使用這些數(shù)據(jù),我們首先需要初始化會(huì)話。我們可以通過(guò)在構(gòu)造函數(shù)中執(zhí)行以下行來(lái)做到這一點(diǎn)。

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

加載會(huì)話庫(kù)后,您可以簡(jiǎn)單地使用會(huì)話對(duì)象,如下所示。

$this->session

 

添加會(huì)話數(shù)據(jù)

在 php 中,我們簡(jiǎn)單地使用 $_session 數(shù)組來(lái)設(shè)置會(huì)話中的任何數(shù)據(jù),如下所示。

$_session[‘key’] = value;

其中‘ key’是數(shù)組的key, value被賦值在等號(hào)的右邊。

同樣的事情可以在 codeigniter 中完成,如下所示。

$this->session->set_userdata('some_name', 'some_value');

set_userdata() 函數(shù)接受兩個(gè)參數(shù)。第一個(gè)參數(shù) some_name 是會(huì)話變量的名稱(chēng), some_value 將存儲(chǔ)在該名稱(chēng)下。

set_userdata() 函數(shù)還支持另一種語(yǔ)法,您可以在其中傳遞數(shù)組來(lái)存儲(chǔ)值,如下所示。

$newdata = array( 
   'username'  => 'johndoe', 
   'email'     => 'johndoe@some-site.com', 
   'logged_in' => true
);  
$this->session->set_userdata($newdata);

 

刪除會(huì)話數(shù)據(jù)

在 php 中,我們可以使用 unset() 函數(shù)刪除會(huì)話中存儲(chǔ)的數(shù)據(jù),如下所示。

unset($_session[‘some_name’]);

在 codeigniter 中刪除會(huì)話數(shù)據(jù)非常簡(jiǎn)單,如下所示。 unset_userdata() 函數(shù)的以下版本只會(huì)從會(huì)話中刪除一個(gè)變量。

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

如果您想從會(huì)話中刪除更多值或刪除整個(gè)數(shù)組,您可以使用以下版本的 unset_userdata() 函數(shù)。

$this->session->unset_userdata($array_items);

 

獲取會(huì)話數(shù)據(jù)

在會(huì)話中設(shè)置數(shù)據(jù)后,我們還可以檢索該數(shù)據(jù),如下所示。 userdata() 函數(shù)將用于此目的。如果您嘗試訪問(wèn)的數(shù)據(jù)不可用,此函數(shù)將返回 null。

$name = $this->session->userdata('name');

 

示例

創(chuàng)建一個(gè)名為 session_controller.php 的控制器類(lèi)并將其保存在 application/controller/session_controller.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'); 
      } 
		
   } 
?>

創(chuàng)建一個(gè)名為 session_view.php 的視圖文件并將其保存在 application/views/session_view.php

 

 
    
       
      codeigniter session example 
   
	
    
      welcome  echo $this--->session->userdata('name'); ?> 
      
 
                click here to unset session data. 
   
	

在 application/config/routes.php 中的 routes.php 文件中進(jìn)行更改,并在文件末尾添加以下行。

$route['sessionex'] = 'session_controller';

使用下面的地址執(zhí)行上面的例子。將 yoursite.com 替換為您網(wǎng)站的網(wǎng)址。

  • http://yoursite.com/index.php/sessionex

下一節(jié):codeigniter flashdata

codeigniter 教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频