100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > php用户登录注销 php开发中实现用户登录与注销的代码示例

php用户登录注销 php开发中实现用户登录与注销的代码示例

时间:2023-03-07 15:31:12

相关推荐

php用户登录注销 php开发中实现用户登录与注销的代码示例

本篇文章给大家带来的内容是关于php实现用户登录与注销的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

之前虽然写过登录的功能,但是注销还没有认真的看过。特此记录

当点击登录时,把用户账号信息以变量的形式存在定义的作用域(session)。session代表一次会话,只要你不关闭当前浏览器他的值就会存在,默认20分钟左右。

// BisAccount变量名, $ret用户账号信息 ,赋值bis作用域

session(‘BisAccount’, $ret, ‘bis’);

// 删除 bis作用域

session( null,‘bis’);

//取值 在bis作用域,名为BisAccount的值

session(‘BisAccount’, ‘’, ‘bis’);

Login

// 如果是post请求,即从登录页面过来的数据 则判断用户名和密码是否正确

账号密码与随机生成的数字拼接,使用MD5加密

// 如果不是post,判断session中是否有登录信息

有 跳转到登录后的页面

没有 跳转到登录页面

class Login extends Controller{ //登录

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('登录成功',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'));

}}

登录后的页面

Base

判断session中是否有BisAccount

有,说明登录状态

没有,重定向到登录页面

class Base extends Controller{

public $account;

public function _initialize() {

// 判定用户是否登录

$isLogin = $this->isLogin();

if(!$isLogin) {

return $this->redirect(url('login/index'));

}

}

//判定是否登录

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('');

}

}

tip: 如果存入的Session名称为A,取Session时也要取A

//存

session(‘BisAccount’, $ret, ‘bis’);

//取

session(‘BisAccount’, ‘’, ‘bis’);

都是BisAccount

以上就是php实现用户登录与注销的代码示例的详细内容,更多请关注达内php培训官网其它相关文章!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。