php+ajax登录跳转登录实现思路


Posted in PHP onJuly 31, 2016

当我们的用户进行系统登录时,用户名和密码的验证都是后端验证的。而且,用户登录状态也是要后端设置的,查询数据库后,用户名和密码正确,则在session中存储一个uuid,每个页面需要根据登录状态判断展示相应的内容时,则判断是否有uuid这个session,且uuid不为空。比如头部的登录按钮,在未登录状态是显示登录按钮,在登录后显示用户名和头像,这些都是判断是否有uuid这个值(具体实现里,相对来说更复杂一些)。

我们再来理下这个步骤:

  1. 向后端ajax发送用户名和密码
  2. 后端接收到用户名和密码后,查询数据库
  3. 若查询失败,则返回一个json数据,如:{"status":"-1", msg:"用户名或密码不正确"}
  4. 若查询成功,则在session中存储一个值,比如uuid,然后向前端返回一个json,比如:{"status":"0", msg:"success"}
  5. 前端js接收到返回的数据后,判断status的值,若status==0,则使用window.location.href进行跳转;其他的状态码都是登录失败,清空密码框,让用户重新输入

比如登录成功跳转到首页,首页里的php或java,需要判断session里是否有uuid

<nav>
  <?php if(isset($_SESSION['uuid']) && !empty($_SESSION['uuid'])):; ?>
    <!-- 若存在uuid,则不为空,则表示已经登录 -->
    <a href="#">蚊子</a>
  <?php else ?>
    <!-- 没有登录 -->
    <input type="button" value="登录" />
  <?php endif; ?>
</nav>
PHP 相关文章推荐
Search Engine Friendly的URL设计
Oct 09 PHP
我的群发邮件程序
Oct 09 PHP
解析PayPal支付接口的PHP开发方式
Nov 28 PHP
PHP对MongoDB[NoSQL]数据库的操作
Mar 01 PHP
深入掌握include_once与require_once的区别
Jun 17 PHP
PHP多例模式介绍
Jun 24 PHP
PHP实现定时执行任务的方法
Oct 05 PHP
PHP实现设计模式中的抽象工厂模式详解
Oct 11 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
Yii编程开发常见调用技巧集锦
Jul 15 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
php对微信支付回调处理的方法
Aug 23 PHP
nginx下安装php7+php5
Jul 31 #PHP
header与缓冲区之间的深层次分析
Jul 30 #PHP
laravel学习教程之关联模型
Jul 30 #PHP
laravel学习教程之存取器
Jul 30 #PHP
thinkphp表单上传文件并将文件路径保存到数据库中
Jul 28 #PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 #PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 #PHP
You might like
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
PHP的FTP学习(三)
2006/10/09 PHP
在PHP中使用redis
2013/11/04 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
2016/05/18 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
JS event使用方法详解
2008/04/28 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
Angular.JS中的this指向详解
2017/05/17 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
详解react-redux插件入门
2018/04/19 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
node.js通过url读取文件
2020/10/16 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
Python + selenium自动化环境搭建的完整步骤
2018/05/19 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
python tkinter canvas使用实例
2019/11/04 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
浅析Python面向对象编程
2020/07/10 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
雷锋精神演讲稿
2014/05/13 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript
用Python生成会跳舞的美女
2022/01/18 Python