Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Codebeispiel zur Implementierung der Benutzeranmeldung und -abmeldung

PHP-Codebeispiel zur Implementierung der Benutzeranmeldung und -abmeldung

不言
不言nach vorne
2019-02-12 14:22:226385Durchsuche

Der Inhalt dieses Artikels befasst sich mit dem Codebeispiel für die Benutzeranmeldung und -abmeldung. Ich hoffe, dass es für Sie hilfreich ist . .

Obwohl ich bereits über die Anmeldefunktion geschrieben habe, habe ich mir die Abmeldefunktion nicht ernsthaft angesehen. Es wird hiermit erfasst

Beim Klicken zum Anmelden werden die Benutzerkontoinformationen im definierten Bereich (Sitzung) in Form von Variablen gespeichert. Sitzung stellt eine Sitzung dar, solange Sie den aktuellen Browser nicht schließen. Der Standardwert beträgt etwa 20 Minuten.

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

PHP-Codebeispiel zur Implementierung der Benutzeranmeldung und -abmeldung

Login

// Wenn es sich um eine Post-Anfrage handelt, also um die Daten, die aus dem Login stammen Seite, dann ermitteln Sie den Benutzernamen und ist das Passwort korrekt?
Das Kontopasswort wird mit zufällig generierten Zahlen verkettet und mit MD5 verschlüsselt

// Wenn es sich nicht um einen Beitrag handelt, stellen Sie fest, ob Anmeldeinformationen vorhanden sind in der Sitzung
Ja Zur Seite nach der Anmeldung springen
Nein Zur Anmeldeseite springen

class Login extends Controller{	//PHP-Codebeispiel zur Implementierung der Benutzeranmeldung und -abmeldung
    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-Codebeispiel zur Implementierung der Benutzeranmeldung und -abmeldung成功',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'));
    }}

Die Seite nach der Anmeldung
PHP-Codebeispiel zur Implementierung der Benutzeranmeldung und -abmeldung

Basis

Stellen Sie fest, ob in der Sitzung ein BisAccount vorhanden ist
Ja, Anmeldestatus angeben
Nein, zur Anmeldeseite weiterleiten

class Base extends  Controller{
    public $account;
    public function _initialize() {
        // 判定用户是否PHP-Codebeispiel zur Implementierung der Benutzeranmeldung und -abmeldung
        $isLogin = $this->isLogin();
        if(!$isLogin) {
            return $this->redirect(url('login/index'));
        }
    }

    //判定是否PHP-Codebeispiel zur Implementierung der Benutzeranmeldung und -abmeldung
    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

Homepage von Base geerbt. Wenn das Konto abgemeldet ist und Sie erneut auf index/index zugreifen, wird die Initialisierungsmethode _initialize in Base verwendet, um festzustellen, ob ein BisAccount im bis-Bereich vorhanden ist, und um zur Anmeldeseite zu springen, ohne nach der Anmeldung auf die Seite zuzugreifen.
Besuchen Sie nach der Anmeldung index/index und login/index, um zur gleichen Seite zurückzukehren.

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

Tipp: Wenn der gespeicherte Sitzungsname A ist, müssen Sie beim Abrufen der Sitzung auch A verwenden

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

Beide sind BisAccount

Das obige ist der detaillierte Inhalt vonPHP-Codebeispiel zur Implementierung der Benutzeranmeldung und -abmeldung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen