美文网首页
CI框架下 Session的简单应用(获取、添加、删除)

CI框架下 Session的简单应用(获取、添加、删除)

作者: isaaCyu | 来源:发表于2017-08-18 14:37 被阅读411次

Session 是如何工作的?

当页面载入后,Session 类就会检查用户的 cookie 中是否存在有效的 session 数据。 如果 session 数据不存在(或者与服务端不匹配,或者已经过期), 那么就会创建一个新的 session 并保存起来。

如果 session 数据存在并且有效,那么就会更新 session 的信息。 根据你的配置,每一次更新都会生成一个新的 Session ID 。

有一点非常重要,你需要了解一下,Session 类一旦被初始化,它就会自动运行。 上面所说的那些,你完全不用做任何操作。正如接下来你将看到的那样, 你可以正常的使用 session 数据,至于读、写和更新 session 的操作都是自动完成的。

什么是session数据?

Session 数据是个简单的数组,带有一个特定的 session ID (cookie)。
如果你之前在 PHP 里使用过 session ,你应该对 PHP 的 $_SESSION 全局变量 很熟悉(如果没有,请阅读下链接中的内容)。
CodeIgniter 使用了相同的方式来访问 session 数据,同时使用了 PHP 自带的 session 处理机制, 使用 session 数据和操作 $_SESSION
数组一样简单(包括读取,设置,取消设置)。
另外,CodeIgniter 还提供了两种特殊类型的 session 数据:flashdata 和 tempdata ,在下面将有介绍。

获取sessioon

 - $_SESSION['item']
 - $this->session->item
 - $this->session->userdata('item');

$name = $_SESSION['name'];

// or:

$name = $this->session->name

// or:

$name = $this->session->userdata('name');

添加session

使用set_userdata方法

$this->session->set_userdata($array);

具体使用如下

$newdata = array(
    'username'  => 'johndoe',
    'email'     => 'johndoe@some-site.com',
    'logged_in' => TRUE
);

$this->session->set_userdata($newdata);

如果你只想添加一对 键名=》键值,可以像这样

$this->session->set_userdata('some_name', 'some_value');

当你想要检查某个session值是否存在的时候可以使用has_userdata 和isset

$this->session->has_userdata('some_name');
isset($_SESSION['some_name'])

删除session

unset($_SESSION['some_name']);

// or multiple values:

unset(
    $_SESSION['some_name'],
    $_SESSION['another_name']
);
$this->session->unset_userdata('some_name');
$array_items = array('username', 'email');

$this->session->unset_userdata($array_items);

相关文章

网友评论

      本文标题:CI框架下 Session的简单应用(获取、添加、删除)

      本文链接:https://www.haomeiwen.com/subject/nmlarxtx.html