📅  最后修改于: 2020-10-26 05:32:43             🧑  作者: Mango
在构建网站时,我们经常需要跟踪用户的活动和状态,为此,我们必须使用session 。为此,CodeIgniter具有会话类。
会话数据可通过网站在全球范围内使用,但要使用这些数据,我们首先需要初始化会话。我们可以通过在构造函数中执行以下行来实现。
$this->load->library('session');
加载会话库后,您可以简单地使用会话对象,如下所示。
$this->session
在PHP中,我们仅使用$ _SESSION数组来设置会话中的任何数据,如下所示。
$_SESSION[‘key’] = value;
其中“ key ”是数组的键,而值在等号的右侧分配。
如下所示,可以在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中。
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 session->userdata('name'); ?>
Click Here to unset session data.
在application / config / routes.php中的route.php文件中进行更改,并在文件末尾添加以下行。
$route['sessionex'] = 'Session_Controller';
通过使用以下地址执行以上示例。用您网站的URL替换yoursite.com 。