PHP+AJAX实现账号注册和登陆,附可用demo

栏目: CSS · 发布时间: 5年前

内容简介:登陆和注册已经是网站的标配了,所以这是我们web开发学习过程中必学的了。其实很容易实现,只需要懂数据库的增删改查,还有if_else的条件语句即可做出来。RegForm.htmlRegUser.php

前言

登陆和注册已经是网站的标配了,所以这是我们web开发学习过程中必学的了。其实很容易实现,只需要懂数据库的增删改查,还有if_else的条件语句即可做出来。

目录

css
    --Login-Reg.css
    
server
    --LoginUser.php
    --RegUser.php
    
--LoginFrom.html
--RegForm.html

注册

RegForm.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>用户注册</title>
    <link rel="stylesheet" type="text/css" href="css/Login-Reg.css">
</head>
<body>
    <h2 id="Reg-text">用户注册</h2>
    <div id="Form-con">
    <form id="form1" onsubmit="return false" action="##" method="post">
        <input type="text" name="username" class="inputStyle" placeholder="请输入账号"><br/>
        <input type="password" name="password" class="inputStyle" placeholder="请输入密码"><br/>
        <input type="password" name="cpassword" class="inputStyle" placeholder="请确认密码"><br/>
        <input type="submit" class="btnStyle" value="注册" onclick="RegUser()">
    </div>
    <div id="Result"></div>
    </form>
</body>
<!-- AJAX提交表单 -->
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript">
        function RegUser() {
            $.ajax({
                type: "POST",//方法
                url: "../server/RegUser.php" ,//表单接收url
                data: $('#form1').serialize(),
                success: function (data) {
                  //提交成功
                    var result=document.getElementById("Result");
                    result.innerHTML=data[0].result;
                    //注册后跳转
                    if (data[0].result == "注册成功") {
                        location.href="LoginFrom.html";
                    }
                },
                error : function(data) {
                  //提交失败
                    var result=document.getElementById("Result");
                    result.innerHTML="连接服务器失败";
                }
            });
        }
    </script>
</html>

RegUser.php

<?php
header("Content-type:application/json");
// 注册账号验证

$username = $_POST["username"];//获取表单POST过来的用户名
$password = $_POST["password"];//获取表单POST过来的密码
$cpassword = $_POST["cpassword"];//获取表单POST过来的重复密码

//表单过滤

$user = trim($username);//过滤空格
$psw = trim($password);//过滤空格
$cpsw = trim($cpassword);//过滤空格

//开始判断

if($user == "" && $psw == "" && $cpsw == ""){
    echo "[{\"result\":\"都还没填呢!\"}]";
}else if($user == "" && $psw == ""){
    echo "[{\"result\":\"账号和密码都还没填呢\"}]";
}else if ($psw == "" && $cpsw == "") {
    echo "[{\"result\":\"密码都还没填呢\"}]";
}else if($user == "" && $cpsw == ""){
    echo "[{\"result\":\"账号和重复密码还没填呢\"}]";
}else if ($user == "") {
    echo "[{\"result\":\"账号还没填呢\"}]";
}else if ($psw == "") {
    echo "[{\"result\":\"密码还没填呢\"}]";
}else if ($cpsw == "") {
    echo "[{\"result\":\"重复密码还没填呢\"}]";
}else if ($psw !== $cpsw) {
    echo "[{\"result\":\"两次输入密码不一样呢\"}]";
}else if (strlen($user) < 5){
    echo "[{\"result\":\"账号不能小于5位数\"}]";
}else if (strlen($psw) < 8){
    echo "[{\"result\":\"密码不能小于8位数\"}]";
}else if (preg_match('/^[\x{4e00}-\x{9fa5}]+$/u', $user)>0){
    echo "[{\"result\":\"账号不能为中文\"}]";
}else if (preg_match('/[\x{4e00}-\x{9fa5}]/u', $user)>0){
    echo "[{\"result\":\"账号不能存在中文\"}]";
}else if(preg_match("/[\'.,:;*?~`!@#$%^&+=)(<>{}]|\]|\[|\/|\\\|\"|\|/",$user)){
    echo "[{\"result\":\"账号不能存在特殊符号\"}]";
}else{
    //生成用户ID,为简单学习,随机生成随机数
    $uid = rand(10000,99999);
    //密码MD5加密
    $md5psw = MD5($psw);
    // 数据库连接
    $con = mysql_connect("localhost","root","root");
    mysql_select_db("test", $con);
    mysql_query("SET NAMES UTF8");

    //查询数据库是否有存在该用户
    $exist = mysql_query("SELECT * FROM userlist WHERE username = '$user'");
    $exist_result = mysql_num_rows($exist);
    if($exist_result){
        //如果存在该用户
        echo "[{\"result\":\"该账号已被注册\"}]";
    }else{
        //插入数据库
        mysql_query("INSERT INTO userlist (username, password, userid) VALUES ('$user', '$md5psw', '$uid')");
        echo "[{\"result\":\"注册成功\"}]";
    }
}
?>

登陆

LoginFrom.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>用户登陆</title>
    <link rel="stylesheet" type="text/css" href="css/Login-Reg.css">
</head>
<body>
    <h2 id="Reg-text">用户登陆</h2>
    <div id="Form-con">
    <form id="form1" onsubmit="return false" action="##" method="post">
        <input type="text" name="username" class="inputStyle" placeholder="请输入账号"><br/>
        <input type="password" name="password" class="inputStyle" placeholder="请输入密码"><br/>
        <input type="submit" class="btnStyle" value="登陆" onclick="LoginUser()">
    </div>
    <div id="Result"></div>
    </form>
</body>
<!-- AJAX提交表单 -->
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript">
        function LoginUser() {
            $.ajax({
                type: "POST",//方法
                url: "../server/LoginUser.php" ,//表单接收url
                data: $('#form1').serialize(),
                success: function (data) {
                    var result=document.getElementById("Result");
                    //提交成功
                    result.innerHTML=data[0].result;
                    if (data[0].result == "登陆成功") {
                        result.innerHTML="登陆成功";
                    }else if (data[0].result == "fail") {
                        result.innerHTML="登陆失败,账号或密码错误";
                    }
                },
                error : function(data) {
                  //提交失败的提示词或者其他反馈代码
                    var result=document.getElementById("Result");
                    result.innerHTML="连接服务器失败";
                }
            });
        }
    </script>
</html>

LoginUser.php

<?php
header("Content-type:application/json");
// 注册账号验证

$username = $_POST["username"];//获取表单POST过来的用户名
$password = $_POST["password"];//获取表单POST过来的密码

//表单过滤

$user = trim($username);//过滤空格
$psw = trim($password);//过滤空格

//开始判断

if($user == "" && $psw == ""){
    echo "[{\"result\":\"账号和密码都没填呢!\"}]";
}else if ($user == "") {
    echo "[{\"result\":\"账号还没填呢\"}]";
}else if ($psw == "") {
    echo "[{\"result\":\"密码还没填呢\"}]";
}else{
    // 数据库连接
    $con = mysql_connect("localhost","root","root");
    mysql_select_db("test", $con);
    mysql_query("SET NAMES UTF8");

    //校验MD5密码
    $md5psw = MD5($psw);

    //查询数据库账号密码是否一致
    $exist = mysql_query("SELECT * FROM userlist WHERE username = '$user' AND password = '$md5psw'");
    $exist_result = mysql_num_rows($exist);
    if($exist_result){
        echo "[{\"result\":\"登陆成功\"}]";
    }else{
        echo "[{\"result\":\"fail\"}]";
    }
}
?>

数据库

自增id --id --int(11)

用户id --userid -- varchar(32)

用户名 --username -- varchar(32)

密码 --password -- varchar(32)

注册时间 --regtime --timestamp

demo

http://www.likeyunba.com/demo...

Author:TANKING

web: http://likeyunba.com

WeChat:likeyunba520

Date:2019-2-2


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

公众号运营实战手册

公众号运营实战手册

中信出版社 / 2018-11 / 58

作者粥左罗在刚入行做新媒体的一年时间里,就写了100篇阅读量10万+的公众号文章,但是在此之前,他足足花了两个月的时间研究公众号运营和爆款文章的逻辑和打法。 这本书就是他总结和归纳自己公众号写作和运营的全部秘诀和技巧,是一本行之有效的实战指南。 从如何注册一个公号,给公号起什么名字? 多长时间更新一次为好? 到如何找选题,如何积累爆款素材? 如何编辑内容,如何做版面设......一起来看看 《公众号运营实战手册》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码