在构建网站时,我们经常需要跟踪用户的活动和状态,为此,我们必须使用会话. CodeIgniter具有用于此目的的会话类.
会话数据可通过网站全球获得,但要使用我们首先需要的数据初始化会话.我们可以通过在构造函数中执行以下行来实现.
$ this-> load-> library('session');
加载会话库后,您可以简单地使用会话对象,如下所示.
$ this-> session
在PHP中,我们只是使用 $ _ SESSION 数组用于设置会话中的任何数据,如下所示.
$ _SESSION ['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 = 'http://localhost: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 替换为您网站的网址.
http://yoursite.com/index.php/sessionex