>  기사  >  백엔드 개발  >  사용자 로그인 및 로그아웃을 구현하는 PHP 코드 예제

사용자 로그인 및 로그아웃을 구현하는 PHP 코드 예제

不言
不言앞으로
2019-02-12 14:22:226366검색

이 기사의 내용은 사용자 로그인 및 로그아웃을 구현하는 PHP의 코드 예제에 대한 것입니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

로그인 기능에 대해서는 이전에 글을 썼지만, 로그아웃 기능에 대해서는 진지하게 살펴본 적이 없습니다. 이렇게 기록됩니다

클릭하여 로그인하면 사용자 계정 정보가 정의된 범위(세션)에 변수 형태로 저장됩니다. 세션은 현재 브라우저를 닫지 않는 한 세션을 나타냅니다. 기본값은 약 20분입니다.

// BisAccount变量名, $ret用户账号信息 ,赋值bis作用域
session(‘BisAccount’, $ret, ‘bis’);
// 删除 bis作用域
session( null,‘bis’);
//取值 在bis作用域,名为BisAccount的值
session(‘BisAccount’, ‘’, ‘bis’);

사용자 로그인 및 로그아웃을 구현하는 PHP 코드 예제

Login

// 게시요청, 즉 로그인 페이지에서 들어오는 데이터라면 사용자 이름과 비밀번호가 맞는지 확인
계정 비밀번호가 스플라이싱되어 있습니다 ​​무작위로 생성된 번호로, MD5로 암호화

// 게시물이 아닌 경우 세션에 로그인 정보가 있는지 확인
예 로그인 후 페이지로 이동
No 로그인 페이지로 이동

class Login extends Controller{	//사용자 로그인 및 로그아웃을 구현하는 PHP 코드 예제
    public function index()
    {
        if (request()->isPost()) {
            $data = input('post.');
            $ret = model('BisAccount')->get(['username'=>$data['username']]);
            if(empty($ret) || $ret->status != 1){
                $this->error('该用户不存在或者未审核通过');
            }
            $pass = $data['password'];
            $ran = $ret['code'];
            if(md5($pass."".$ran) != $ret['password']){
                $this->error('密码错误');
            }
            model('BisAccount')->updateById(['last_login_time'=>time()],$ret->id);
            //session保存用户信息 赋值bis作用域
            session('BisAccount', $ret, 'bis');
            return $this->success('사용자 로그인 및 로그아웃을 구현하는 PHP 코드 예제成功',url('Index/index'));
        } else {
            $account = session('BisAccount','','bis');
            if(!empty($account) && $account->id){
                return $this->redirect(url('index/index'));
            }
            return $this->fetch();
        }
    }
		//注销
    public function logout(){
        session( null,'bis');
        $this->redirect(url('login/index'));
    }}

로그인 후 페이지
사용자 로그인 및 로그아웃을 구현하는 PHP 코드 예제

Base

세션에 BisAccount가 있는지 확인
예, 로그인 상태를 표시합니다.
아니요, 로그인 페이지로 리디렉션됩니다.

class Base extends  Controller{
    public $account;
    public function _initialize() {
        // 判定用户是否사용자 로그인 및 로그아웃을 구현하는 PHP 코드 예제
        $isLogin = $this->isLogin();
        if(!$isLogin) {
            return $this->redirect(url('login/index'));
        }
    }

    //判定是否사용자 로그인 및 로그아웃을 구현하는 PHP 코드 예제
    public function isLogin() {
        // 获取sesssion
        $user = $this->getLoginUser();
        if($user && $user->id) {
            return true;
        }
        return false;

    }

    public function getLoginUser() {
        if(!$this->account) {
            $this->account = session('BisAccount', '', 'bis');
        }
        return $this->account;
    }}

Index

홈 페이지는 Base에서 상속됩니다. 계정이 로그아웃되었다가 다시 인덱스/인덱스에 접근하면 Base의 _initialize 초기화 메소드를 이용하여 bis 범위에 BisAccount가 있는지 확인하고 로그인 후 페이지에 접근하지 않고 로그인 페이지로 점프하게 됩니다.
로그인 후 index/index와 login/index를 방문하시면 같은 페이지로 돌아오실 수 있습니다.

class Index extends Base{
    public function index()
    {
        return $this->fetch('');
    }
    }

팁: 저장된 세션 이름이 A인 경우 세션을 검색할 때도 A를 사용해야 합니다

//存
session(‘BisAccount’, $ret, ‘bis’);
//取
session(‘BisAccount’, ‘’, ‘bis’);

둘 다 BisAccount

위 내용은 사용자 로그인 및 로그아웃을 구현하는 PHP 코드 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제