ホームページ  >  記事  >  バックエンド開発  >  ユーザーのログインとログアウトを実装するための PHP コード例

ユーザーのログインとログアウトを実装するための PHP コード例

不言
不言転載
2019-02-12 14:22:226366ブラウズ

この記事では、ユーザーのログインとログアウトを実装するための php のコード例を紹介します。一定の参考値があります。困っている友人は参考にしてください。お役に立てば幸いです。

ログイン機能については以前にも書きましたが、ログアウト機能についてはあまり真剣に検討したことがありませんでした。これにより、記録

#クリックしてログインすると、ユーザー アカウント情報が変数の形式で定義されたスコープ (セッション) に保存されます。 Session はセッションを表します。現在のブラウザを閉じない限り、その値は存在します。デフォルトは約 20 分です。

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

ユーザーのログインとログアウトを実装するための PHP コード例

Login

// 投稿リクエストの場合、つまりログインからのデータの場合ページにアクセスして、ユーザー名とパスワードが正しいかどうかを確認します。

アカウントのパスワードはランダムに生成された数字で結合され、MD5 を使用して暗号化されます

// 投稿でない場合は、投稿があるかどうかを確認します。セッション内のログイン情報
Yes ログイン後のページにジャンプします
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 から継承されます。アカウントがログアウトされ、index/index に再度アクセスすると、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。