php实现用户登录与注销的代码示例
php实现用户登录与注销的代码示例
内容导读
收集整理的这篇技术教程文章主要介绍了php实现用户登录与注销的代码示例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2579字,纯文字阅读大概需要4分钟。
内容图文
本篇文章给大家带来的内容是关于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实现用户登录与注销的代码示例的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是为您收集整理的php实现用户登录与注销的代码示例全部内容,希望文章能够帮你解决php实现用户登录与注销的代码示例所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。