Maison > développement back-end > tutoriel php > 关于YII Session与Cookie的有效期的问题和cookie与session的关系

关于YII Session与Cookie的有效期的问题和cookie与session的关系

WBOY
Libérer: 2016-06-06 20:44:28
original
1085 Les gens l'ont consulté

1.在YII的loginForm中间,有一个login方法用来设置记住用户名的时间:

<code class="lang-php">public function login()
    {
        if($this->_identity===null)
        {
            $this->_identity=new UserIdentity($this->username,$this->password);
            $this->_identity->authenticate();
        }
        if($this->_identity->errorCode===UserIdentity::ERROR_NONE)
        {
            $duration=$this->rememberMe ? 3600*24*10 : 0; // 10 days
            Yii::app()->user->login($this->_identity,$duration);
            return true;
        }
        else
            return false;
    }
}
</code>
Copier après la connexion
Copier après la connexion

如上,假如我把$duration=$this->rememberMe ? 36002410 : 0; // 10 days,即我设置为10天。是cookie的有效期设置为10天,还是cookie和session的有效期都设置为10天呢?
我想把session的有效期设置10天。不知道在哪里可以设置。
还有一个问题,假如cookie是10天,session只有半个小时。第二天我带着cookie登录的时候,是不是PHP根据cookie生成了一个session。
还是php自动生成了session,然后把sessionID重新写回到cookie中间去呢?

回复内容:

1.在YII的loginForm中间,有一个login方法用来设置记住用户名的时间:

<code class="lang-php">public function login()
    {
        if($this->_identity===null)
        {
            $this->_identity=new UserIdentity($this->username,$this->password);
            $this->_identity->authenticate();
        }
        if($this->_identity->errorCode===UserIdentity::ERROR_NONE)
        {
            $duration=$this->rememberMe ? 3600*24*10 : 0; // 10 days
            Yii::app()->user->login($this->_identity,$duration);
            return true;
        }
        else
            return false;
    }
}
</code>
Copier après la connexion
Copier après la connexion

如上,假如我把$duration=$this->rememberMe ? 36002410 : 0; // 10 days,即我设置为10天。是cookie的有效期设置为10天,还是cookie和session的有效期都设置为10天呢?
我想把session的有效期设置10天。不知道在哪里可以设置。
还有一个问题,假如cookie是10天,session只有半个小时。第二天我带着cookie登录的时候,是不是PHP根据cookie生成了一个session。
还是php自动生成了session,然后把sessionID重新写回到cookie中间去呢?

session是存在服务器上的,

cookie是存在于客户端上的也就是你自己的电脑,

你浏览器关掉,session就会失效的,

session的有效期有服务器的设置来控制

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal