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培训官网其它相关文章!
php用户登录注销,php开发中实现用户登录与注销的代码示例相关推荐
- 【原创】去掉微信登录二维码中的微信登录几个字的解决方法
去掉微信登录二维码中的微信登录几个字的解决方法 通过分析,原来微信自己有参数可以去掉, 解决方法,如下: 链接中加上 &popup=0&href=https%3A%2F%2Fsta.g ...
- python中config命令_Python config.config方法代码示例
本文整理汇总了Python中config.config方法的典型用法代码示例.如果您正苦于以下问题:Python config.config方法的具体用法?Python config.config怎么 ...
- python求1到n的乘积_Python如何计算列表中所有数字的乘积?(代码示例)
在Python中如何将列表中所有数字相乘,然后返回乘积值.下面本篇文章就来给大家介绍三种将列表中的所有数字相乘.计算乘积值的方法,希望对大家有所帮助. 方法一:使用遍历 将变量product的值初始化 ...
- Web开发中的用户角色权限设计总结
在Web开发中关于权限管理设计大抵涉及到两个方面:一:功能方面权限设计:二:资源方面权限设计.二者比较来看,功能方面权限的可重用性更高. 1.关于权限: 按照角色权限的最简单的设计 名称 描述 用户 ...
- mysql以user1登录_在mysql中创建用户后不能本地登录的解决方法
在安装完成MySQL后,我们通常添加拥有相应权限的普通用户用来访问数据库.在使用用户本地登录数据库的时候,经常会出现怎么登录也无法登录的情况,但是从其他的mysql客户端却可以登录. [root@my ...
- 什么是用户故事及用户故事在敏捷开发中如何编写
用户故事(user story)是从用户的角度来描述用户渴望得到的功能.一个好的用户故事包括三个要素: 1. 角色:谁要使用这个功能. 2. 活动:需要完成什么样的功能. 3. 商业价值:为什么需要这 ...
- 语音交友app开发中的用户积分系统
引言 在当今数字时代,语音交友app已成为一种流行的社交工具.它们给用户提供了一个平台,在这里他们可以结交新朋友,分享他们的生活和信仰,并建立深厚的人际关系.然而,市场上存在大量的语音交友app,这使 ...
- python实现qq登录_在django中实现QQ登录
在服务器端做qq登录的流程: 1.放置QQ登录按钮,这个去QQ的网站上下,把这个按钮的连接指向 https://graph.qq.com/oauth2.0/authorize?response_typ ...
- linux服务器管理公司用户,在Linux服务器Jenkins中管理用户和角色的方法
下面将教你如何在Linux服务器Jenkins中管理用户和角色,它需要创建角色并分配给用户,你需要运行Jenkins服务器才能操作接下来的工作. 安装Jenkins参考文章 在Jenkins中管理用户 ...
最新文章
- 【视频】视频方面大神博客总结
- blf文件用什么软件打开_如何用皕杰流程创建一个blf演示流程文件?
- linux批量创建用户和密码
- java 工厂模式的写法_[java设计模式] 工厂模式解析
- sublime text3 插件安装方法
- html点击隐藏点击出现,点击按钮,内容隐藏,再点击一下,然后内容又显示了,这种效果怎么做?然后默认的是隐藏的...
- Java反斜线(\)路径与转义字符的小坑
- 用户目录更改后显示为-bash-3.1#
- poj 2069 Super Star 模拟退火
- 计算机科学和软件工程区别,计算机科学和软件工程的区别
- 【转载】C#中可使用string.Empty代表空字符
- 将Windows网络适配器共享网络的ip:192.168.137.1 改为其他IP
- java-java动态性之反射,动态编译,动态执行js及动态字节码操作
- NWA Quality Analyst应用案例:在食品加工中选择和实施SPC软件
- 如何优雅地下载PDF格式知网硕博论文?
- 《寄生虫》横扫奥斯卡,Python告诉你这部电影到底好在哪儿?
- CS224n(2019):Assignment2 参考答案
- EXCEL实现文本类型数字字符串递增
- 1038	01背包动态规划
- MAC 打开CAJViewerMac软件时报错
热门文章
- 玩游戏计算机缺失msvcp140,电脑丢失msvcp140.dll的解决方法 电脑缺少msvcp140.dll怎么解决...
- Linux 基金会发布免费电子书 — 《企业开源:实践》
- .NET Framework 中新托管 Direct3D 图形 API 的简介
- c语言认知报告,对C语言指针的认识的认知实习报告
- 欧阳萍听口班(上)——笔记+学习记录
- VMWare虚拟机网络连接设置
- 基于uniapp的医院挂号系统源码
- html如何查找文件,查找文件名为A 的文件怎么查
- 如何提升消费者在o2o上的粘性?
- 零售企业的业务中台OMS架构分析