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 相关文章推荐
swfupload 多文件上传实现代码
Aug 27 PHP
php 编写安全的代码时容易犯的错误小结
May 20 PHP
php trim 去除空字符的定义与语法介绍
May 31 PHP
PHP高级对象构建 工厂模式的使用
Feb 05 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
May 19 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
PHP简单判断字符串是否包含另一个字符串的方法
Mar 25 PHP
php求数组全排列,元素所有组合的方法
May 05 PHP
CI框架中redis缓存相关操作文件示例代码
May 17 PHP
laravel 中如何使用ajax和vue总结
Aug 16 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP命名空间简单用法示例
Dec 28 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
Javascript 二维数组
2009/11/26 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
python抓取百度首页的方法
2015/05/19 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
Python类的继承和多态代码详解
2017/12/27 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
python request 模块详细介绍
2020/11/10 Python
普天C++笔试题
2016/03/20 面试题
机电一体化自荐信
2013/12/10 职场文书
校庆接待方案
2014/03/18 职场文书
飞屋环游记观后感
2015/06/08 职场文书
JavaScript 原型与原型链详情
2021/11/02 Javascript
服务器间如何实现文件共享
2022/05/20 Servers