美文网首页
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