登录  /  注册
退出登录后还显示请不要重复登录
森
2017-10-26 12:58:29
[PHP讨论组]

7_NBRTP{1$X_EO@O~TT241N.pngAR$41HSAL0C9(EE~`EIK3`F.pngSE]EP2]LB1P5~_5RL~@IC56.png为何我退出登录后还显示请不要重复登录?session没清空?不科学啊

Base.php控制器:

<?php 

namespace app\admin\common;

use think\Controller;

use think\Session;

class Base extends Controller{

// Base.php控制器主要完成三项工作:

// 1.创建登录标志常量,

// 2.对未登录进行处理,

// 3.对已登录进行处理,

protected function _initialize(){

        parent::_initialize();

        // 在公共控制器的初始化方法中,创建一个常量来判断用户是否登录或已登录

        define('USER_ID',Session::get('user_id'));

    }

    // 判断用户是否登录,在后台入口调用

    protected function isLogin(){

    // 如果登录常量为空,表示没有登录

    if(is_null('USER_ID')){

    $this->error('未登录,无权访问...','login/index'); 

    }

    }

    // 如果用户已经登录,将不再登录

    protected function alreadyLogin(){

    //如果登录常量为空,表示没有登录

    if(!is_null('USER_ID')){

    $this->error('请不要重复登录...','index/index'); 

    }

    }

}



 ?>


森

全部回复(3)
路过

is_null 是判断变量是不是 null 类型的

你换成 empty() 就行

  • 回复 还是不行啊
    作者 2017-10-27 13:03:09
  • 回复 我跟着敲的,结果是对的。只能说这个视频除了没有写use think\Session;,其他是对的。一起共同学习吧我微信emaoqingshan
    yestrue 作者 2017-10-31 23:19:06
  • 回复 你声明了常量,并赋值了,退出的时候没有处理常量USER_ID
    路过 作者 2017-10-27 13:07:07
森

<?php


namespace app\admin\controller;


use app\admin\common\Base;

use think\Request;

use app\admin\model\Admin;

use think\Session;


class Login extends Base

{

    // 渲染登录界面

    public function index()

    {

        $this->alreadyLogin();

        return $this->view->fetch('Login');

    }


    // 验证用户身份

    public function check(Request $request)

    {

        //设置返回的初始值

        $status=0;

        // 获取表单提交的数据,并保持在变量中

        $data=$request->param();

        $userName=$data['username'];

        $password=md5($data['password']);

        // 在admin表中进行查询:以用户为条件

        $map=['username'=>$userName];

        $admin=Admin::get($map);

        // 将用户名与密码分开验证

        if(is_null($admin)){

            // 设置返回信息

               $message='用户名不正确';

        }else if($admin->password!=$password){

                $message='密码不正确';

        }else{

            $status=1;

            $message='验证通过,请登录后台';

            $admin->setInc('login_count');

             $admin->save(['last_time'=>time()]);

             // session::set(name:'user_id',value:$userName);

             // session::set(name:'user_info',value:$data);

             session::set('user_id',$userName);

             session::set('user_info',$data);  

        }

        return ['status'=>$status,'message'=>$message];


    }


    // 退出登录

    public function logout()

    {

        // session(null);

            Session::delete('user_id');

             Session::delete('user_info'); 

             $this->success('注册成功,正在返回...','login/index'); 

        //

    }


    

    public function delete($id)

    {

        //

    }

}

11111.png

  • 回复 一起共同学习吧我微信emaoqingshan
    yestrue 作者 2017-10-31 23:19:22
  • 回复 在Base.php中添加use think\Session; 所有用到Session的地方都要添加
    阿拉坚果丶 作者 2018-03-04 18:56:08
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号