zoukankan      html  css  js  c++  java
  • 用户登录注销功能

    1:判断登录

      public function main(){

    //dump(session('admin_id'));die;

          if(!session('admin_id')){

          $this->success('未登录',U('index/login'),2);

          }

          $this->display();

        }

        

        public function login(){

          //两个逻辑:展示、收集

          if(!empty($_POST)){

            //校验验证码

            $vry = new ThinkVerify();

            if($vry ->check($_POST['verify']))

              {

                 //校验用户名密码

                 //先根据用户名查询一遍,查看是否存在此用户名,存在继续走,不存在返回个提示,就此截止。以此增加安全性跟效率

                 //然后获取密码,查看获取的密码md5后跟数据库的密码是否一致,

                 //如果一样则用户名密码验证通过,然后将用户名name跟id存到session里面,以后页面登录操作,可以直接判断有没有session['admin_name']或者session['adminid'],来判断用户是否登录,

                 $username = I('post.username','');

                 $firs=M('manager')->where("mg_name='$username'")->find();

                //echo $firs['mg_pwd'];die;

                // echo M('manager')->getLastsql();die;

                 //print_r($firs);die;

                 if(empty($firs)){

                  $this->error('用户不存在','/admin/home/empty/',3);

                 }

                 $passwd = I('post.pwd','');

                 if($passwd == $firs['mg_pwd'])

                  {

                    //接下来就是session持久化用户名跟id,然后页面跳转,也就是将提交的用户信息保存到admin_name,admin_id中去,此时session会自动生成session_id(),其他页面判断时也可以用有无这个值进行判断,id是会不断变化的

                    session('admin_name',$info['mg_name']);//将mg_name存到session中

                    session('admin_id',$info['id']);

                    $this->redirect('main');

                    }else{

                    echo "用户名密码错误";

                  }

              }

              else

              {

              echo "验证码错误:(";

              }

              

              

          }else{

            $this->display();

          }

    $this->display();

        }

    public function logout(){

      //退出系统,清楚session就行

      session(null);

      $this->redirect('login');

    }

    public function verify(){

       $config =    array(   

        'fontSize'  => 18,    // 验证码字体大小  

        'length'   => 4,     // 验证码位数 

        'useNoise' => true, // 关闭验证码杂点

            );

      $Verify =     new ThinkVerify($config);

      $Verify->entry();

    }

    增强安全性,tyteam.com/admin/Home/Saylist/add/直接打开这个地址如果没有session判断,则用户也能进行增删改差,如果加了session判断,则必须进行登录才可以操作。

    1:新建sessionpdcontrollar控制器用来判断sessionid存不存在

    <?php

    namespace HomeController;

    use ThinkController;

    class SessionpdController extends Controller {

    function __construct (){//使用构造函数自动加载判断session

    parent::__construct();

    if(!session('admin_name'))

    {

    $this->error('<span style="font-size:36px; color:#ff0000;">没有登录奥亲:)!</span>',U('index/login'),2);

    }else{

    echo 'session _name='.session('admin_name');

    }

    }

    }

    2:将后台页面中顶部class ColumnController extends Controller 改为

    class ColumnController extends SessionpdController

    这样在页面加载时会自动判断session存不存在,进行判断用户的登录情况。

    2:判断session过期时间

    login方法里加入 $_SESSION['dl_time']=time()+480;//设置session过期时间

    if($passwd == $firs['mg_pwd'])

                   {

                    //接下来就是session持久化用户名跟id,然后页面跳转,也就是将提交的用户信息保存到admin_name,admin_id中去,此时session会自动生成session_id(),其他页面判断时也可以用有无这个值进行判断,id是会不断变化的

                      session('admin_name',$firs['mg_name']);//将mg_name存到session中

                      session('admin_id',$firs['id']);

                      $_SESSION['dl_time']=time()+480;//设置session过期时间

                      $this->redirect('main');

                    }

    sessionpdcontrollar控制器里面修改

    <?php

    namespace HomeController;

    use ThinkController;

    class SessionpdController extends Controller {

    function __construct (){

    parent::__construct();

    //判断用户登录情况开始

    if(!session('admin_name'))

    {

    $this->error('<span style="font-size:36px; color:#ff0000;">没有登录奥亲:)!</span>',U('index/login'),2);

    }else{

    //判断用户登录情况完毕

    //echo 'session _name='.session('admin_name');

    //设置session过期时间

    /* $_SESSION['dl_time']=time()+60;//设置session时间,当前时间加上一分钟}*/

    if(isset($_SESSION['dl_time']))

    {

         if($_SESSION['dl_time']<time())

         {

           /* echo date('y-m-d h:i:s',time());

            echo "<br>过期时间 =";

            echo date('y-h-m h:i:s',$_SESSION['dl_time']);;*/

             session(null);

       $this->redirect('login');

         }

    }else

    {

            $_SESSION['dl_time']=time()+60;

           /*echo $_SESSION['dl_time'];

    echo "<br>";

    echo date('y-h-m h:i:s',$_SESSION['dl_time']);*/

    }

    //session时间设置完毕

    }

    }

    }

  • 相关阅读:
    Kafka项目实战-用户日志上报实时统计之编码实践
    MapReduce-深度剖析
    Word 页码设置教程:如何删除封面和目录的目录?
    Pytorch autograd,backward详解
    Pytorch Sampler详解
    Pytorch并行计算:nn.parallel.replicate, scatter, gather, parallel_apply
    论文笔记系列-Auto-DeepLab:Hierarchical Neural Architecture Search for Semantic Image Segmentation
    Pytorch: parameters(),children(),modules(),named_*区别
    Broadcast,Scatter,Gather,Reduce,All-reduce分别是什么?
    如何理解正定矩阵和半正定矩阵
  • 原文地址:https://www.cnblogs.com/yszr/p/8120398.html
Copyright © 2011-2022 走看看