CodeIgniter 会话管理

codeigniter 会话管理

 

在构建网站时,我们经常需要跟踪用户的活动和状态,为此,我们必须使用 session。 codeigniter 具有用于此目的的会话类。

 

初始化会话

会话数据可通过站点全局访问,但要使用这些数据,我们首先需要初始化会话。我们可以通过在构造函数中执行以下行来做到这一点。

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

加载会话库后,您可以简单地使用会话对象,如下所示。

$this->session

 

添加会话数据

在 php 中,我们简单地使用 $_session 数组来设置会话中的任何数据,如下所示。

$_session[‘key’] = value;

其中‘ key’是数组的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 中。

 
   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

 

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

在 application/config/routes.php 中的 routes.php 文件中进行更改,并在文件末尾添加以下行。

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

使用下面的地址执行上面的例子。将 yoursite.com 替换为您网站的网址。

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

下一节:codeigniter flashdata

codeigniter 教程

相关文章