热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jQuery+ajax+php实现注册登录功能

html代码,login.html<form><label>用户名<label><inputtypete

html代码,login.html









jquery代码,login.js

$('img').click(function(){
$('img').attr('src','php/getVerify.php?'+Math.random());//刷新验证码
})
$('#login').click(function(){
var username=$('#user-name').val();
var password=$("#user-password").val();
var code=$("#code").val();
if(username!=""&&password!=""&&code.length==4){
$.ajax({
type:"POST",
url:"php/userLogin.php",
dataType:"JSON",
data:{
"user_name":username,
"password":password,
"code":code
},
success:function(data){
switch(data){
case 1://普通用户
$.COOKIE("user",username);
$.COOKIE("limit",0);
window.location.href="index.php";
break;
case 2://管理员用户
$.COOKIE("user",username);
$.COOKIE("limit",1);
window.location.href="index.php";
break;
case 3://密码错误
alert("密码错误!");
break;
case 4://用户不存在
alert("该用户不存在!");
break;
case 0://验证码错误
alert("验证码不正确!");
break;
}

}
})
}else{
alert("请检查您的输入!");
}
})
$('#sign').click(function(){
var username=$('#user-name').val();
var password=$("#user-password").val();
var code=$("#code").val();
if(username!=""&&password!=""&&code.length==4){
$.ajax({
type:"POST",
url:"php/addUser.php",
dataType:"JSON",
data:{
"user_name":username,
"password":password,
"code":code
},
success:function(data){
switch(data){
case 1://用户已存在
alert("该用户已存在!请换一个用户名注册。")
break;
case 2://注册成功
alert("注册成功!");
$.COOKIE("user",username);
$.COOKIE("limit",0);
window.location.href="index.php";
break;
case 0://验证码错误
alert("验证码不正确!");
break;
}

}
})
}else{
alert("请检查您的输入!");
}
})

php代码,userLogin.php

header("Content-type: text/html; charset=UTF-8");
session_start();
$name = $_POST['user_name'];
$password=$_POST['password'];
$code=$_POST['code'];
$con=mysql_connect('localhost','root','');
if(!$con){
die('error:'.mysql_error());
}
mysql_select_db('db_name');
$result=mysql_query("select * from users where user_name='$name'");
if($_SESSION['verify']==$code){
if($row=mysql_fetch_array($result)){
if($row['password']==$password){
if($row['power']==0){
echo 1;//普通用户
}else{
echo 2;//管理员用户
}
}else{
echo 3;//密码错误
}
}else{
echo 4;//用户不存在
}
}else{
echo 0;//验证码错误
}

addUser.php

header("Content-type: text/html; charset=UTF-8");
session_start();
$name = $_POST['user_name'];
$password=$_POST['password'];
$code=$_POST['code'];
$con=mysql_connect('localhost','root','');
if(!$con){
die('error:'.mysql_error());
}
mysql_select_db('db_name');
$result=mysql_query("select * from users where user_name='$name'");
if($_SESSION['verify']==$code){
if($row=mysql_fetch_array($result)){
echo 1;//用户已存在
}else{//注册成功
mysql_query("insert into `users` (`user_name`,`password`) values ('$name','$password')");
echo 2;
}
}else{
echo 0;
}





推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
author-avatar
不需要忆jf
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有