【问题标题】:Session in Yii applicationYii 应用中的会话
【发布时间】:2014-09-01 18:15:31
【问题描述】:

我想学习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: 请解释一下unset(Yii::app()->session['userid']); 中的userid 是什么?我无法理解(因为我是 Yii 的新手)。它只是数据库表名的一个变量或任何属性

我从this topic复制了这些行。

谢谢。最好的问候。

【问题讨论】:

  • userid 会话变量!

标签: php session yii


【解决方案1】:

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

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

unset 销毁指定的变量。

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

这里useridsession 变量。它被摧毁了。


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

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

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

【讨论】:

  • 感谢您的回复。我会试试你的代码......但我不明白这一点:我可以用任何另一个变量(exp:mirjalal)或它的数据库表中列的名称来更改'userid'吗?我将用户的 ID 保留在“idperson”列中。那么我应该改变它吗?最后;我是否需要在 protected/config/main.php 中添加一些行?因为我真的不知道我必须对会话做什么。谢谢。
  • 是的,你可以把userid改成mirjalal,它不是数据库表的列。有关会话的更多信息:refulz.com/configuring-session-in-yii-framework-chttpsession
猜你喜欢
  • 2014-01-24
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
  • 2012-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多