本篇文章给大家带来的内容是关于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培训官网其它相关文章!

php用户登录注销,php开发中实现用户登录与注销的代码示例相关推荐

  1. 【原创】去掉微信登录二维码中的微信登录几个字的解决方法

    去掉微信登录二维码中的微信登录几个字的解决方法 通过分析,原来微信自己有参数可以去掉, 解决方法,如下: 链接中加上 &popup=0&href=https%3A%2F%2Fsta.g ...

  2. python中config命令_Python config.config方法代码示例

    本文整理汇总了Python中config.config方法的典型用法代码示例.如果您正苦于以下问题:Python config.config方法的具体用法?Python config.config怎么 ...

  3. python求1到n的乘积_Python如何计算列表中所有数字的乘积?(代码示例)

    在Python中如何将列表中所有数字相乘,然后返回乘积值.下面本篇文章就来给大家介绍三种将列表中的所有数字相乘.计算乘积值的方法,希望对大家有所帮助. 方法一:使用遍历 将变量product的值初始化 ...

  4. Web开发中的用户角色权限设计总结

    在Web开发中关于权限管理设计大抵涉及到两个方面:一:功能方面权限设计:二:资源方面权限设计.二者比较来看,功能方面权限的可重用性更高. 1.关于权限: 按照角色权限的最简单的设计 名称 描述 用户 ...

  5. mysql以user1登录_在mysql中创建用户后不能本地登录的解决方法

    在安装完成MySQL后,我们通常添加拥有相应权限的普通用户用来访问数据库.在使用用户本地登录数据库的时候,经常会出现怎么登录也无法登录的情况,但是从其他的mysql客户端却可以登录. [root@my ...

  6. 什么是用户故事及用户故事在敏捷开发中如何编写

    用户故事(user story)是从用户的角度来描述用户渴望得到的功能.一个好的用户故事包括三个要素: 1. 角色:谁要使用这个功能. 2. 活动:需要完成什么样的功能. 3. 商业价值:为什么需要这 ...

  7. 语音交友app开发中的用户积分系统

    引言 在当今数字时代,语音交友app已成为一种流行的社交工具.它们给用户提供了一个平台,在这里他们可以结交新朋友,分享他们的生活和信仰,并建立深厚的人际关系.然而,市场上存在大量的语音交友app,这使 ...

  8. python实现qq登录_在django中实现QQ登录

    在服务器端做qq登录的流程: 1.放置QQ登录按钮,这个去QQ的网站上下,把这个按钮的连接指向 https://graph.qq.com/oauth2.0/authorize?response_typ ...

  9. linux服务器管理公司用户,在Linux服务器Jenkins中管理用户和角色的方法

    下面将教你如何在Linux服务器Jenkins中管理用户和角色,它需要创建角色并分配给用户,你需要运行Jenkins服务器才能操作接下来的工作. 安装Jenkins参考文章 在Jenkins中管理用户 ...

最新文章

  1. 【视频】视频方面大神博客总结
  2. blf文件用什么软件打开_如何用皕杰流程创建一个blf演示流程文件?
  3. linux批量创建用户和密码
  4. java 工厂模式的写法_[java设计模式] 工厂模式解析
  5. sublime text3 插件安装方法
  6. html点击隐藏点击出现,点击按钮,内容隐藏,再点击一下,然后内容又显示了,这种效果怎么做?然后默认的是隐藏的...
  7. Java反斜线(\)路径与转义字符的小坑
  8. 用户目录更改后显示为-bash-3.1#
  9. poj 2069 Super Star 模拟退火
  10. 计算机科学和软件工程区别,计算机科学和软件工程的区别
  11. 【转载】C#中可使用string.Empty代表空字符
  12. 将Windows网络适配器共享网络的ip:192.168.137.1 改为其他IP
  13. java-java动态性之反射,动态编译,动态执行js及动态字节码操作
  14. NWA Quality Analyst应用案例:在食品加工中选择和实施SPC软件
  15. 如何优雅地下载PDF格式知网硕博论文?
  16. 《寄生虫》横扫奥斯卡,Python告诉你这部电影到底好在哪儿?
  17. CS224n(2019):Assignment2 参考答案
  18. EXCEL实现文本类型数字字符串递增
  19. 1038 01背包动态规划
  20. MAC 打开CAJViewerMac软件时报错

热门文章

  1. 玩游戏计算机缺失msvcp140,电脑丢失msvcp140.dll的解决方法 电脑缺少msvcp140.dll怎么解决...
  2. Linux 基金会发布免费电子书 — 《企业开源:实践》
  3. .NET Framework 中新托管 Direct3D 图形 API 的简介
  4. c语言认知报告,对C语言指针的认识的认知实习报告
  5. 欧阳萍听口班(上)——笔记+学习记录
  6. VMWare虚拟机网络连接设置
  7. 基于uniapp的医院挂号系统源码
  8. html如何查找文件,查找文件名为A 的文件怎么查
  9. 如何提升消费者在o2o上的粘性?
  10. 零售企业的业务中台OMS架构分析