- 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' => '[email protected]', '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://127.0.0.1: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