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

不言
リリース: 2023-04-05 07:34:01
転載
6383 人が閲覧しました

この記事では、ユーザーのログインとログアウトを実装するための 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 サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート