我在登录功能中创建了会话。现在我想在所有其他函数上使用创建的会话,如果用户登录,则创建的会话应该应用于所有其他函数。
由于
答案 0 :(得分:1)
我认为你需要先了解会话。
会话如何运作?
会话通常会在每次页面加载时全局运行,因此Session类应该在控制器构造函数中初始化,或者可以由系统自动加载。在大多数情况下,会话类将在后台无人值守运行,因此只需初始化类将使其在必要时读取,创建和更新会话。
要在控制器构造函数中手动初始化Session类,请使用$ this-> load-> library()方法:
$this->load->library('session');
加载后,Sessions库对象将可用:
$this->session
会话数据只是与特定会话ID(cookie)相关联的数组。
访问CI会话文档了解更多详情 在此处观看: Session
答案 1 :(得分:0)
在您的登录部分
$this->db->where('email',$email);
$this->db->where('password',$pass);
$query = $this->db->get('admin');
$data= $query->result_array();
if($data){
$this->session->set_userdata('sessionVariable', $data);
redirect('controller_name');
}
从application/config/autoload.php
$autoload['libraries'] = array('session');
OR
在控制器的__construct()
中加载会话库
public function __construct()
{
parent::__construct();
$this->load->library('session');
}
获取会话数据
$sessionData = $this->session->userdata('sessionVariable');
答案 2 :(得分:0)
您可以在config.php
$autoload['libraries'] = array('database','Session','email');
或强>
您可以在Core文件夹中创建一个基本控制器,并将所有其他控制器扩展到该基本控制器。
喜欢这个
<?php
class MY_Controller extends CI_Controller {
public $data = array();
function __construct() {
parent::__construct();
$this->data['errors'] = array();
$this->data['site_name'] = config_item('site_name');
$this->load->library('session');
}
}
现在,所有其他控制器都应扩展到基本控制器而不是CI_Controller
在您的控制器中
控制器1 :
class Login extends MY_Controller
{
function __construct() {
parent::__construct();
}
}
控制器2:
class Dashboard extends MY_Controller
{
function __construct() {
parent::__construct();
}
}
所以你只需要加载你的库就是你的基本控制器,并获得子控制器中所有基本控制器的优点。这样可以为您提供更好的hierarchy
,code management
和security