zoukankan      html  css  js  c++  java
  • 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
    參数如何来的?

    这样:


  • 相关阅读:
    Linux2_软件源apt 仓库 包 的概念
    I2C(smbus pmbus)和SPI分析
    Linux1_发型版本(Debian RHEL)与软件包管理器(RPM dpkg)的概念
    ubuntu系统下如何切换输入法
    【NYOJ】[169]素数
    【杭电】[2020]绝对值排序
    【杭电】[2020]绝对值排序
    【NYOJ】[199]无线网络覆盖
    【NYOJ】[243]字母统计
    【NYOJ】[198]数数
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5325859.html
Copyright © 2011-2022 走看看