Yii2框架(四)Seesion及cookie操作

发布时间:2020-03-22 11:43:46 阅读:20

    今天看一下Yii2.0框架对session以及cookie的操作。

    一:session

    1:存储session

    /**
     * 存储session
     */
    public function actionSession()
    {
        Yii::$app->session['username'] = "111111";
        Yii::$app->session['ses'] = "222222";
        echo "success";
    }

    输出:session


    2:session取值

    /**
     * session取值
     */
    public function actionSess()
    {
        echo '<pre>';
        var_dump(Yii::$app->session);
        var_dump(Yii::$app->session['username']);
        var_dump(Yii::$app->session['ses']);
        echo "success";
    }

    输出:

    object(yii\web\Session)#53 (8) {
      ["flashParam"]=>
      string(7) "__flash"
      ["handler"]=>
      NULL
      ["_cookieParams":"yii\web\Session":private]=>
      array(1) {
        ["httponly"]=>
        bool(true)
      }
      ["frozenSessionData":"yii\web\Session":private]=>
      NULL
      ["_hasSessionId":"yii\web\Session":private]=>
      bool(true)
      ["_events":"yii\base\Component":private]=>
      array(0) {
      }
      ["_eventWildcards":"yii\base\Component":private]=>
      array(0) {
      }
      ["_behaviors":"yii\base\Component":private]=>
      NULL
    }
    string(6) "111111"
    string(6) "222222"
    success

     

    3:销毁session

    /**
     * 销毁session
     */
    public function actionClear()
    {
        Yii::$app->session->destroy();
    }

     

    销毁之后,再次获取session,发现session为空。

     

    二:cookie

    1:cookie存储

    /**
     * 设置cookie
     */
    public function actionCookie()
    {
        $cookie = new \yii\web\Cookie();
        $cookie -> name = 'smister';        //cookie的名称
        $cookie -> expire = time() + 3600;    //存活的时间
        $cookie -> httpOnly = true;          //无法通过js读取cookie
        $cookie -> value = 'cookieValue';     //cookie的值
        echo "success";
    }

    输出success

     

    2:cookie取值

    /**
     * cookie取值
     */
    public function actionGetcok()
    {
        $cookie = \Yii::$app->request->cookies;
        echo "<pre>";
        //返回一个\yii\web\Cookie对象
        var_dump($cookie->get('name','xxx'));
    
        //直接返回Cookie的值
        var_dump($cookie->getValue('name','xxxx')); //$cookie[‘smister’] 其实这样也是可以读取的
    
        //判断一个Cookie是否存在
        var_dump($cookie->has('name'));
    
        //读取Cookie的总数
        var_dump($cookie->count());//$cookie->getCount();跟count一样
        echo "success";
    }

    输出:

    object(yii\web\Cookie)#57 (8) {
      ["name"]=>
      string(4) "name"
      ["value"]=>
      string(5) "Larry"
      ["domain"]=>
      string(0) ""
      ["expire"]=>
      NULL
      ["path"]=>
      string(1) "/"
      ["secure"]=>
      bool(false)
      ["httpOnly"]=>
      bool(true)
      ["sameSite"]=>
      NULL
    }
    string(5) "Larry"
    bool(true)
    int(2)
    success

     

    3:删除cookie

    /**
     * 删除cookie
     */
    public function actionDelcok()
    {
        $cookie = Yii::$app->request->cookies->get('name');
        //移除一个Cookie对象
        $res = \Yii::$app->response->getCookies()->remove($cookie);
        var_dump($res); // 值为null,也就是说,他是没有返回值的。
        echo "success";
    }

    输出success

     

    以上大概就是yii2.0框架对session以及cookie的基本操作。

     

    有好的建议,请在下方输入你的评论。

关键字yii php