Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Codebeispiel zur Implementierung der Benutzeranmeldung und -abmeldung
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’);
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
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!