YII用户注冊和用户登录(五)之进行session和cookie分析 ,并在前后区分session和cookie

5 进行session和cookie分析 ,并在前后区分session和cookie;

记住登录状态

这样下次再登录站点的时候。就不用反复输入username和password。

是浏览器的cookie把状态给记住了。


制作表单:

                                <tr>
                                    <td align="right">
                                        <?php echo $form->checkBox($user_login, 'rememberMe'); ?

> </td> <td> <?php echo $form->labelEx($user_login, 'rememberMe'); ?> </td> </tr>

改动模型:

控制器部分:用户登录

    /**
     *用户登录 
     */
    function actionLogin(){
        //创建登录模型对象
        $user_login = new LoginForm;
        
        if(isset($_POST['LoginForm'])){
            //收集表单信息
            $user_login->attributes = $_POST['LoginForm'];
            
            
            //校验数据,走的是rules()方法。不仅仅校验username和password是否填写。还要校验真实性(在模型里边自己定义方法校验真实性)
            //用户信息进行session存储,调用模型里边的一个方法login()。就能够进行session存储
            if($user_login->validate() && $user_login->login()){
                $this ->redirect ('./index.php');
            }
        }
        
        $this -> render('login',array('user_login'=>$user_login));
    }


查看cookie和session信息结果:


主要用户退出:

    /*
     * 用户退出系统
     */
    function actionLogout(){
        //删除session信息
        //Yii::app()->session->clear();  //删除内存里边sessiion变量信息
        //Yii::app()->session->destroy(); //删除server的session文件
        
        //session和cookie一并删除 不然无法退出
        Yii::app()->user->logout();
        
        $this->redirect('/');
    }
此时会有一个问题。前后台session如何区分,这种:

在后台能够设置session前缀

{
	public function init()
	{
            //自己定义后台默认控制器
            $this -> defaultController = "index";
		// this method is called when the module is being created
		// you may place code here to customize the module or the application

		// import the module-level models and components
		$this->setImport(array(
			'houtai.models.*',
			'houtai.components.*',
		));
                
                //为后台登录管理员设置session名字前缀信息
                Yii::app()->setComponents(array(
                    'user'=>array(
                        'stateKeyPrefix' =>'houtai',
                        'loginUrl'=>'./index.php?

r=houtai/manager/login', ) )); }


图示:



stateKeyPrefix
參数如何来的?

这样:


原文地址:https://www.cnblogs.com/gcczhongduan/p/5325859.html