ajax实现用户登录注册和退出

ajax实现用户注册登录和退出

第一步:验证用户名

get
guestbook/index.php
m:index
a:verifyUserName
username:要验证的用户名
返回{
code:返回的信息代码 0=没有错误,1=有错误
message: 返回的信息 具体返回的信息
}

第二步: 用户注册

post
guestbook/index.php
m:index
a:reg
username:要验证的用户名
password:注册密码
返回{
code:返回的信息代码 0=没有错误,1=有错误
message: 返回的信息 具体返回的信息
}

第三步: 用户登录

当登录成功时,调用更新状态函数
post
guestbook/index.php
m:index
a:login
username:要登录的用户名
password:登录密码
返回{
code:返回的信息代码 0=没有错误,1=有错误
message: 返回的信息 具体返回的信息
}

第四步:检验cookie

写一个获取cookie的函数,根据cookie值是否存在来写一个更新用户状态的函数

第五步:用户退出

当用户退出时,调用更新状态函数
post
guestbook/index.php
m:index
a:logout
返回{
code:返回的信息代码 0=没有错误,1=有错误
message: 返回的信息 具体返回的信息
}

(以上是步骤说明和一些后端接口)

完整代码如下

window.onload=function()
{

    var oUsername1=document.getElementById('username1');//用户名框(注册)
    var oVerifyUserNameMsg=document.getElementById('verifyUserNameMsg');//验证验证用户名提示框(注册)
    var oPassword1=document.getElementById('password1');//密码框(注册)
    var obtnReg=document.getElementById('btnReg');//提交按钮(注册)


    var oUsername2=document.getElementById('username2');//用户名框(登录)
    var oPassword2=document.getElementById('password2');//密码框(登录)
    var obtnLogin=document.getElementById('btnLogin');//提交按钮(登录)

    var oReg=document.getElementById('reg');//注册框
    var oLogin=document.getElementById('login');//登录框
    var oUser=document.getElementById('user');//退出框
    var oUserinfo=document.getElementById('userinfo');//用户名(退出框)
    var oLogout=document.getElementById('logout');//退出按钮(退出框)

    function getCookie(key){         //获取cookie值
            var arr=document.cookie.split('; ');
            //console.log(arr);
            for(var i=0;i<arr.length;i++){
                var arr2=arr[i].split('=');
                console.log(arr2);
                if(arr2[0]==key){
                    return arr2[1];
                }
            }
        };
    updataUser();

    function updataUser(oUid){  //更新状态函数
        var oUid=getCookie('uid');
        var oUsername=getCookie('username');

        if(oUid){
            oUser.style.display='block';
            oUserinfo.innerHTML=oUsername;
            oReg.style.display='none';
            oLogin.style.display='none';
        }else{
            oUser.style.display='none';
            oUserinfo.innerHTML="";
            oReg.style.display='block';
            oLogin.style.display='block';
        }

    }
    oUsername1.onblur=function(){    //用户名验证
        ajax('get',"guestbook/index.php",'m=index&a=verifyUserName&username='+this.value,function(data){
            var info=JSON.parse(data);

             oVerifyUserNameMsg.innerHTML=info.message;
             if(info.code){
                oVerifyUserNameMsg.style.color='red';


             }else{
                oVerifyUserNameMsg.style.color='green';
             }
        });
    };
    obtnReg.onclick=function(){     //注册提交按钮
        ajax('post','guestbook/index.php',
            'm=index&a=reg&username='+encodeURI(oUsername1.value)+'&password='+oPassword1.value,
            function(data){
            var info=JSON.parse(data);
            alert(info.message);
            if(!info.code){
                oReg.style.display='none'
            }
        });
    };
    obtnLogin.onclick=function(){        //登录提交按钮
        ajax('post','guestbook/index.php',
            'm=index&a=login&username='+encodeURI(oUsername2.value)+'&password='+oPassword2.value,
            function(data){
                var info=JSON.parse(data);
                alert(info.message);
                if(! info.code){
                    updataUser();
                }

            });

    };

           oLogout.onclick=function(){  //退出提交按钮
            ajax('post','guestbook/index.php',
                'm=index&a=logout',function(data){
                var info=JSON.parse(data);
                alert(info.message);
                if(! info.code){
                    updataUser();
                }

            });
            return false;

           }

}
  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要在你的服务器上搭建好 PHP 环境和数据库服务。接下来,我们可以分为以下几个步骤来实现登录注册页面: 1. 创建数据库和表格 我们可以使用 MySQL 数据库,并创建一个名为 `users` 的表格,用于存储用户的信息,包括 id、username、password 等字段。 ```sql CREATE TABLE users ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL ); ``` 2. 创建 HTML 页面 我们可以创建一个 `index.php` 页面作为入口,其中包括登录和注册表单,以及用户展示页面。 ```html <!DOCTYPE html> <html> <head> <title>Login / Register</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="script.js"></script> </head> <body> <h1>Login / Register</h1> <!-- 登录表单 --> <form id="login-form"> <h2>Login</h2> <label>Username</label> <input type="text" name="username"> <label>Password</label> <input type="password" name="password"> <button type="submit">Login</button> </form> <!-- 注册表单 --> <form id="register-form"> <h2>Register</h2> <label>Username</label> <input type="text" name="username"> <label>Password</label> <input type="password" name="password"> <button type="submit">Register</button> </form> <!-- 用户展示页面 --> <div id="user-list"> <h2>User List</h2> <table> <thead> <tr> <th>ID</th> <th>Username</th> </tr> </thead> <tbody></tbody> </table> </div> <!-- 退出登录按钮 --> <button id="logout-button">Logout</button> </body> </html> ``` 其中,我们引入了 jQuery 库和 `script.js` 脚本文件,用于实现 Ajax 功能。 3. 创建 PHP 后端接口 我们可以创建一个 `api.php` 文件,用于处理登录、注册、获取用户列表等后端接口。 ```php <?php // 连接数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "dbname"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // 处理登录请求 if ($_POST["action"] == "login") { $username = $_POST["username"]; $password = $_POST["password"]; $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'"; $result = $conn->query($sql); if ($result->num_rows > 0) { $row = $result->fetch_assoc(); session_start(); $_SESSION["user_id"] = $row["id"]; echo "success"; } else { echo "fail"; } } // 处理注册请求 if ($_POST["action"] == "register") { $username = $_POST["username"]; $password = $_POST["password"]; $sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')"; if ($conn->query($sql) === TRUE) { echo "success"; } else { echo "fail"; } } // 处理获取用户列表请求 if ($_POST["action"] == "get_users") { $sql = "SELECT id, username FROM users"; $result = $conn->query($sql); $data = array(); while ($row = $result->fetch_assoc()) { $data[] = $row; } echo json_encode($data); } // 处理退出登录请求 if ($_POST["action"] == "logout") { session_start(); session_destroy(); echo "success"; } $conn->close(); ?> ``` 其中,我们使用了 PHP 的 `mysqli` 扩展来连接数据库,并使用 `$_POST` 变量来获取 Ajax 请求中的数据。 4. 创建 JavaScript 脚本 我们可以创建一个 `script.js` 脚本文件,用于实现 Ajax 功能,以及与 HTML 页面交互。 ```javascript $(function() { // 处理登录表单提交 $("#login-form").submit(function(event) { event.preventDefault(); var username = $(this).find("input[name='username']").val(); var password = $(this).find("input[name='password']").val(); $.post("api.php", { action: "login", username: username, password: password }, function(data) { if (data == "success") { location.reload(); } else { alert("Login failed."); } }); }); // 处理注册表单提交 $("#register-form").submit(function(event) { event.preventDefault(); var username = $(this).find("input[name='username']").val(); var password = $(this).find("input[name='password']").val(); $.post("api.php", { action: "register", username: username, password: password }, function(data) { if (data == "success") { alert("Register success."); } else { alert("Register failed."); } }); }); // 获取用户列表并展示 $.post("api.php", { action: "get_users" }, function(data) { var users = JSON.parse(data); var tbody = $("#user-list tbody"); for (var i = 0; i < users.length; i++) { var user = users[i]; var tr = $("<tr></tr>"); tr.append($("<td></td>").text(user.id)); tr.append($("<td></td>").text(user.username)); tbody.append(tr); } }); // 处理退出登录按钮点击 $("#logout-button").click(function() { $.post("api.php", { action: "logout" }, function(data) { if (data == "success") { location.reload(); } else { alert("Logout failed."); } }); }); }); ``` 其中,我们使用了 jQuery 库的 `$` 函数来简化 DOM 操作和 Ajax 请求。在页面加载完成后,我们会自动获取用户列表并展示在页面上。 5. 测试页面 最后,我们可以在浏览器中访问 `index.php` 页面,进行登录和注册操作,并查看用户列表功能。当我们点击退出登录按钮时,会清除当前用户的会话信息,实现退出登录功能。 以上就是一个简单的登录注册页面的实现过程,包括了连接数据库、使用 Ajax 进行数据交互等基本功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值