会员登录实现记住密码功能需要用到cookie 和session,首先我们来简单了解一下cookie 和session 的区别

Cookie
Cookie是完全保存在客户端。当客户端禁止cookie时将不能再使用;对服务端压力较小;可以指定生存周期;安全性差。
Session
Session是存放在服务端的。服务端压力较大;关闭浏览器后,session失效;安全性较好。

当制作单纯的会员登录功能,我们只使用session 就可以,但是要实现记住密码功能 就得再加上cookie了,因为cookie 不会随着浏览器关闭而消失,从而实现了下次打开浏览器用户依然是登录的状态

直接上代码

    <div class="user-layout clearfix"><div class="formlr-box"><form id="user-form" method="post"><h3>{:lang('log_in')}</h3><ul><li><span>{:lang('form_email')}</span><input type="input" placeholder="" id="email" name="email"/></li><li><span>{:lang('form_password')}</span><input type="password" placeholder="" id="password" name="password"/></li></ul><div class="forgot">{:lang('remember_me')}</div><input type="hidden" name="remember" id="remember" value="0"/><button type="button" onclick="checkForm()">{:lang('log_in')}</button><div class="other"><a href="{:url('reg')}">{:lang('reg')}</a> | <a href="{:url('forget')}">{:lang('forget_pass')}</a></div></form></div></div><script type="application/javascript">function checkForm(){var email = $("#email").val();var password = $("#password").val();var formdata = $("#user-form").serializeArray();if(email == ''){alert("{:lang('alert_no_email')}");$("#email").focus();return false;}if((!isEmail(email))){alert("{:lang('alert_err_email')}");$("#email").focus();return false;}if(password == ''){alert("{:lang('alert_no_password')}");$("#password").focus();return false;}$.post("{:url('login')}", { "formdata": formdata },function(res){if(res.code == 0){window.location.href=res.callback;}else{alert(res.message);return false;}}, "json");}/*判断邮箱格式*/function isEmail(str){var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;return reg.test(str);}$('.forgot').on('click',function(){if($(this).hasClass('active')){$(this).removeClass('active');$('#remember').val(0);}else{$(this).addClass('active');$('#remember').val(1);}})</script>
    public function login(){if (Request::instance()->isPost()){$formdata = input('post.formdata/a');$data = array();$username = $formdata[0]['value'];$password = $formdata[1]['value'];$remember = $formdata[2]['value'];/*检查用户是否存在*/$member = $this->MemberDb->where(array('email'=>$username,'is_status'=>1))->find();if($member){/*检查密码是否正确*/if($member['password'] != md5($password)){ajax_return('','Password input error',1);}else{$auth = array('uid'       => $member['uid'],'username' => $member['username']);session('member_auth', $auth);if($remember == 1){cookie('union_member_auth', $auth, time()+3600*24*30);//保存时间为30天}ajax_return('','Success',0,url('index'));}}else{ajax_return('','user does not exist',1);}}/*Mate信息*/$meta_title = 'Login - '.$this->Config['sitename'];$meta_keywords = '';$meta_description = '';$this->assign('meta_title', $meta_title);$this->assign('meta_keywords', $meta_keywords);$this->assign('meta_description', $meta_description);/*模板渲染*/return view();}

PHP会员登录实现记住密码功能 thinkPHP5相关推荐

  1. vue 登录页面记住密码功能

    vue+iview/element 一般用来快速搭建后台管理系统,登录页的记住密码功能也是必不可少的. 记住密码快速登录功能(iview ui): 思路:首次登录,记住密码,将密码存储到cookie中 ...

  2. vue考试系统后台管理项目-登录、记住密码功能

    考试系统后台管理项目介绍: 技术选型:Vue2.0+Elemenu-ui 项目功能介绍: 账户信息模块:菜单权限.角色权限设置.角色权限分配.账号设置.公司分组 考试管理模块:新增/编辑/删除考试试题 ...

  3. 前端登录实现记住密码功能

    1.在登录的表单中添加记住密码勾选框 <el-form-item><el-checkbox name="type" v-model="remember& ...

  4. C# winform 登录 实现自动登录 和记住密码功能

    登录界面如下 配置文件如下  在App.config下 写个<appSettings>节点  照着我的写就行了 单击登录时 Configuration cfa = Configuratio ...

  5. Python Django 使用cookie实现三天免登录及记住密码功能代码示例

  6. 用localStorage实现登录时记住密码的功能

    用localStorage实现登录时记住密码的功能 HTNL代码片段 <el-input v-model="ruleForm.user" placeholder=" ...

  7. PyQt5实现登录界面,包含用户注册,记住密码功能

    本文主要基于PyQt5用的是qt designer,连接MySQL实现登录界面,包含注册功能,记住密码功能,说明这一切都是基于在pycharm上配置好了pyuic和qt designer 目录 1.实 ...

  8. AppCan用cookie实现记住密码功能 [APP]

    今天想做个在应用上记住密码的功能.想了一下,先用COOKIE来测试.COOKIE保存在客户端. 关于COOKIE在手机上安不安全的问题,以后再讨论. 其实想过在手机上创建文件保存密码,但是,没有时间, ...

  9. Vue中使用js-cookie插件实现登录时记住密码后存取到Cookie中

    场景 使用vue实现一个登录页面时,实现记住密码功能. 在勾选了记住密码后将密码存储到Cookie中,然后下次直接从Cookie中取. 注: 博客: https://blog.csdn.net/bad ...

最新文章

  1. 最全总结!聊聊 Python 操作PDF的几种方法
  2. R语言使用compareGroups包绘制单因素分析表实战:基于survival包的colon数据集
  3. Verilog中inout端口的使用方法
  4. JAX-RS 方式的 RESTful Web Service 开发
  5. MATLAB调用C++程序
  6. 13道Python数组练习题
  7. 底部检测的do...while循环
  8. 基于OctTree的快速最近颜色搜索
  9. Git学习总结(25)——Git 常用的分支开发模式及规范总结
  10. Qt5学习笔记之bin文件合成工具四:完善功能打包程序
  11. mysql刷新数据库命令_MySQL 数据库常用命令小结
  12. 使用React Native源码编译Android项目
  13. linux安装富士施乐打印机驱动下载,Ubuntu 8.04下安装Xerox打印机记录
  14. 无法阻止的电竞热潮-用电竞连接世界
  15. PC浏览器模拟手机浏览器访问网站
  16. 微信小程序实现地图定位
  17. FlinkSQL JDBC 批处理 java heap space
  18. Eclipse - Reset Perspective
  19. 华硕飞行堡垒7代笔记本电脑开机键盘亮黑屏解决办法
  20. 无线通信技术(习题课)

热门文章

  1. c语言函数三种方式,c语言函数的三种调用方式是什么
  2. 3D彩票系统,面向对象编程版
  3. Android应用更新-自动检测版本及自动升级
  4. 3D游戏编程与设计作业6-Unity实现打飞碟游戏改进版(Hit UFO)
  5. python 时间提醒_Linux下基于python的定时提醒工具
  6. 自定义View仿魅族手机加速(手机管家)效果
  7. html5网页制作全程揭秘,网页设计殿堂之路:HTML 5网页制作全程揭秘
  8. VMware-server-2.0.0-101586注册码备下来
  9. 100首好听的英文歌
  10. 专访微软研究院俞栋:基于深度学习的语音识别及CNTK的演进