我想学习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复制了这些行。
感谢。最好的问候。
答案 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']);
此处userid
是session
变量。它被摧毁了。
Yii::app()->session->clear();
clear()
用于删除所有会话。
在clear()
之后,您需要使用
Yii::app()->session->destroy();