实现简单登陆注册功能流程分析
时间:2022-07-23
本文章向大家介绍实现简单登陆注册功能流程分析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一:思路分析
- 用户前端注册账号时,我们前端需要使用ajax访问后端文件(下面以php文件举例),通过php文件操作服务器里面的数据库,当然我们得提前建立好数据库与表、编写php文件访问数据库,将前端所需数据做输出。前端则通过
ajax
访问php文件,获取数据php文件中输出的返回数据。最终使用js操作编写所需呈现给用户的效果。若用户前端登录,登录成功以后将信息保存至cookie
中。后面通过读取cookie
中数据,将首页登录
字更换为用户账户名。
二:关于建立数据库与建表
- 这里使用Navicat来建立数据库与表,我们打开Navicat,点击
连接
,然后填写新建链接中信息(连接名随意取,用户名随意取)。
数据库中新建连接
- 然后我们点击
新建数据库
建立数据库(数据库名可以随意填写,需要注意字符集和排序规则的格式),完了以后点击确定。
新建数据库
新建数据库2
- 我们打开建好的数据库,在点击图下方的
新建表
,填写我们后面所需要用到的数据,一般情况账户名设置为不重复,完了以后ctrl+s
保存设置表名,当然我们也可以最开始就设置好表的名字。
打开建好的数据库
填写表的信息1
设置列不重复
设置表名
三、编写PHP文件访问服务器中数据库
- 首先通过php文件对建立连接数据库,设置编码,选择数据库。然后在
php文件
里编写SQL语句操作数据库,做判断将前端数据做返回。
//建立连接,选择数据库的conn.php文件
<?php
//链接
mysql_connect("localhost:3306","root","");
mysql_query("set names 'utf8'");
mysql_query("set character set 'utf8'");
mysql_select_db("liyi");
?>
//这个是cors跨域php文件示例,该文件为login.php文件
<?php
//添加请求头
header("Access-Control-Allow-Origin:*");
$username=$_GET["username"];
$password=$_GET["password"];
//链接数据库
require "conn.php";
//编写SQL语句
$sql = "SELECT username,password FROM users WHERE username='$username' AND password='$password'";
$result = mysql_query($sql);
if( $row = mysql_fetch_array($result,MYSQL_ASSOC)){
$r = array("res_code"=>1,"res_err"=>"","res_body"=>$row);
echo json_encode($r);//向前端返回数据
}else{
$r = array("res_code"=>-1,"res_err"=>"用户名或密码错误");
echo json_encode($r);//向前端返回数据
}
mysql_close();
?>
//register.php文件
<?php
//CORS跨域添加请求头
header("Access-Control-Allow-Origin:*");
$username=$_POST["username"];
$password=$_POST["password"];
require "conn.php";
$sql = "INSERT INTO users(username,password) VALUES('$username','$password')";
$result = mysql_query($sql);
if($result){
$arr=array("res_code"=>1,"res_err"=>"");
echo json_encode($arr);//向前端返回数据
}else{
$arr = array("res_code"=>-1,"res_err"=>"错误:".mysql_error());
echo json_encode($arr);//向前端返回数据
}
mysql_close();
?>
四:前端通过ajax访问获取数据
- 前端通过ajax访问获取到数据以后,做判断将所需内容渲染至页面。下面是使用
jQuery
发起ajax请求
访问php文件
获取返回数据。做登录与注册操作,登录成功我们使用cookie
将用户信息保存至cookie
中。
//登录页面代码示例
$.cookie.json=true;//这里使用了jquery中的cookie插件,这个设置是将保存至cookie中的数据为json文本的形式做保存
$("#login").click(function(){
const data = $("#sign_user").serialize();
$.getJSON("http://localhost:80/php2/login.php",data,function(data){
if(data.res_code==1){
$("#prompt").html("登录成功");
location="/index.html";
$.cookie("login_user",data,{path:"/",expires:7});
}else{
$("#prompt").html("用户名或密码错误");
}
})
return false;
})
//当点击注册时
$.cookie.json=true;//这里使用了jquery中的cookie插件,这个设置是将保存至cookie中的数据为json文本的形式做保存
$("#register").click(function(){
const data = $("#register_form").serialize();
//获取验证框的value值
const value= $("#checkout").val();
//判断是否和图片上文字相同
if(value == $(".code").data("content")){
//判断密码和再次输入密码是否相同
if($(".confirm").val()==$(".re-confirm").val()){
//发起ajax请求
$.post("http://localhost:80/php2/register.php",data,function(data){
if(data.res_code==1){
console.log(1)
$(".prompt1").html(`礼易账号注册成功`);
location="/html/login.html";
}else{
$(".prompt1").html(`礼易账号已被注册,请更换账户名`);
}
},"json")
}else if($(".confirm").val()!==$(".re-confirm").val()){
$(".prompt1").html(`两次输入的密码不相同,请再次确认`);
}
}else if(value !== $(".code").data("content")){
$(".prompt1").html(`验证码输入错误,请重新输入`);
}
return false;
})
- 算法模板——线性欧拉函数
- jdbc基础 (一) MySQL的简单使用
- 小白博客 爆破内网mysql数据库root密码脚本代码
- 2818: Gcd
- 1688: [Usaco2005 Open]Disease Manangement 疾病管理
- 通过MySQL自动同步刷新Redis
- 13.MySQL(一) 数据库简介mysql安装数据库操作Mysql数据类型存储引擎
- 3314: [Usaco2013 Nov]Crowded Cows
- BZOJ4766: 文艺计算姬
- 14.MySQL(二) 数据之表操作表内容操作Mysql 连接事务外键
- 3450: Tyvj1952 Easy
- SP104 HIGH - Highways
- 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝
- 15.MySQL(三) 索引类型
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法