Yii应用程序中的会话

时间:2014-09-01 18:15:31

标签: php session yii

我想学习sessions in Yii,因此我创建了一个简单的登录表单。我也希望"设置"这个项目的会议。

我的登录操作

public function actionLogin()
{
    Yii::app()->session['userid'] = "value"; // where i should put line ??

    $model=new LoginForm('login');
    if(isset($_POST['ajax']) && $_POST['ajax']==='form-reg')
    {
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }

    if(isset($_POST['regist']))
    {
        $model->username=$_POST['istiad'];
        $model->password=$_POST['parol'];

        if($model->validate() && $model->login()) {
            $this->redirect(array( 'update','id'=>$this->getIdByUsername($model->username ) ));
            /*  $this->render(
                  'update',array(
                      'model'=> $this->loadModelByUsername($model->username ) ) );*/
        }
    }
    else
        $this->redirect(Yii::app()->user->returnUrl);
}

退出操作

public function actionLogout()
{
    Yii::app()->user->logout();
    unset(Yii::app()->session['userid']);   // also this,
    Yii::app()->session->clear();           // this
    Yii::app()->session->destroy();         // and this line ?? 

    $this->redirect(Yii::app()->homeUrl);
}

p.s:请解释一下userid中的unset(Yii::app()->session['userid']);是什么?我无法理解(因为我是Yii的新人)。它只是db表名的变量或任何属性

我从this topic复制了这些行。

感谢。最好的问候。

1 个答案:

答案 0 :(得分:0)

验证用户名和密码后设置会话。喜欢这里......

if($model->validate() && $model->login()) {
        Yii::app()->session['userid'] = "value"; //here
        $this->redirect(array( 'update','id'=>$this->getIdByUsername($model->username ) ));
}

取消设置会破坏指定的变量。

unset(Yii::app()->session['userid']);

此处useridsession变量。它被摧毁了。


Yii::app()->session->clear();

clear()用于删除所有会话。 在clear()之后,您需要使用

从服务器中删除实际数据
Yii::app()->session->destroy();