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

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

不言
풀어 주다: 2023-04-05 07:34:01
앞으로
6395명이 탐색했습니다.

이 기사의 내용은 사용자 로그인 및 로그아웃을 구현하는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿