AJAX实现页面登录及注册用户名验证

AJAX介绍

定义:“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
 

       AJAX 是一种用于创建快速动态网页的技术。其核心是 JavaScript 对象 XMLHttpRequest。该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术。简而言之,XMLHttpRequest使您可以使用 JavaScript 向服务器提出请求并处理响应,而不阻塞用户。
 

       通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。
    
       试想如果在注册时,提交了注册信息,等了几秒后页面重载了,结果弹出一个提示框告诉你“用户名已被使用”,那将是很令人恼火的一件事。所以在这里,使用AJAX实现异步请求,即可在不重载页面的情况下实现与数据库的通讯。

 

AJAX封装

      将其封装成js功能文件,并在网页中导入即可进行引用。

<span style="font-family:Times New Roman;font-size:14px;">
         function ajax(url,onsuccess,onfail)
          {
            var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
            xmlhttp.open("POST", url, true);
            xmlhttp.onreadystatechange = function ()
            {
                if (xmlhttp.readyState == 4)
                {
                    if (xmlhttp.status == 200)
                    {
                        onsuccess(xmlhttp.responseText);//成功时逻辑操作
                    }
                    else
                    {
                        onfail(xmlhttp.status);//失败时逻辑操作
                    }
                }
            }
            xmlhttp.send(); //这时才开始发送请求
        }
</span>

 

下面开始写登陆判断代码(用的是.net):
       首先,创建一个html页login.htm以及ashx一般处理程序userhandle.ashx,请求的url中带上一个action参数,在一般处理程序中对请求进行处理。 

function Submit1_onclick() {
            var name = document.getElementById("name").value;
            var psw = document.getElementById("psw").value;
            if (psw != "" && name != "") { 
             //调用AJAX
             ajax("../userhandle.ashx?operate=login&userName=" + name + "&psw=" + psw, 
            function (resText) {
                    if (resText == "fail") {
                        alert("用户名或密码错误!");
                        return false;
                    }
                    else {
                        document.write(resText);
                    }
                })
            }
            else {
                alert("请输入完整登陆信息!");
                return false;
            }
        }
 

 

在一般处理程序中接到请求动作,判断并执行相关查询,返回一个字符串,前台页面接到后台,判断并执行相应功能。

 public void login(HttpContext context)
        {
            userBLL ub = new userBLL();
            string userName = context.Request["userName"];
            string userPsw = context.Request["psw"];      
            bool b = ub.Login(userName, userPsw);//封装好的bll层方法,判断用户名密码是否正确
            if (b == true)
            {
                context.Session["Name"] = userName;
                context.Session["role"] = "user";
                context.Response.Write("success");
            }
            else
            {
                context.Response.Write("fail");
            }
        }

服务器判断完后,将success或者fail发送到客户端。这样一个使用AJAX异步请求实现登陆就完成了。

注册时判断用户名  

function check() {
            var userName = document.getElementById("Text1").value;
            if (userName == "" || userName == null) {
                document.getElementById("nameMeg").style.color = "red";
                document.getElementById("nameMeg").innerHTML = "用户名为6-10位英文或数字";
            }
            else { 
            ajax("../userhandle.ashx?operate=checkName&userName=" + userName, function (resText) {
                if (resText == "forbid") {
                    document.getElementById("nameMeg").style.color = "red";
                    document.getElementById("nameMeg").innerHTML = "用户名含有非法词语";
                } else if (resText == "already have") {
                    document.getElementById("nameMeg").style.color = "red";
                    document.getElementById("nameMeg").innerHTML = "用户名已被使用";
                } else {
                    document.getElementById("nameMeg").style.color = "green";
                    document.getElementById("nameMeg").innerHTML = "可以使用";
                }
            })
            }
        }

 

  • 6
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个基于 AJAX 和 PHP 的注册登录页面的简单实例: 1. HTML 页面 ```html <!DOCTYPE html> <html> <head> <title>AJAX PHP Register/Login Example</title> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script> // 注册表单提交 $(document).on('submit', '#register-form', function(e){ e.preventDefault(); var username = $('#username').val(); var password = $('#password').val(); var confirmPassword = $('#confirm-password').val(); $.ajax({ type: 'POST', url: 'register.php', data: {username: username, password: password, confirm_password: confirmPassword}, dataType: 'json', success: function(response){ if(response.success){ alert('注册功!'); }else{ alert(response.error); } } }); }); // 登录表单提交 $(document).on('submit', '#login-form', function(e){ e.preventDefault(); var username = $('#username').val(); var password = $('#password').val(); $.ajax({ type: 'POST', url: 'login.php', data: {username: username, password: password}, dataType: 'json', success: function(response){ if(response.success){ alert('登录功!'); }else{ alert(response.error); } } }); }); // 用户名验证 $(document).on('blur', '#username', function(){ var username = $(this).val(); $.ajax({ type: 'POST', url: 'check_username.php', data: {username: username}, dataType: 'json', success: function(response){ if(!response.success){ alert(response.error); } } }); }); </script> </head> <body> <h2>注册</h2> <form id="register-form"> <div> <label for="username">用户名:</label> <input type="text" id="username" name="username" required> </div> <div> <label for="password">密码:</label> <input type="password" id="password" name="password" required> </div> <div> <label for="confirm-password">确认密码:</label> <input type="password" id="confirm-password" name="confirm_password" required> </div> <button type="submit">注册</button> </form> <h2>登录</h2> <form id="login-form"> <div> <label for="username">用户名:</label> <input type="text" id="username" name="username" required> </div> <div> <label for="password">密码:</label> <input type="password" id="password" name="password" required> </div> <button type="submit">登录</button> </form> </body> </html> ``` 2. PHP 后端代码 - `register.php` ```php <?php // 获取提交的数据 $username = $_POST['username']; $password = $_POST['password']; $confirmPassword = $_POST['confirm_password']; // 校验数据 if(empty($username) || empty($password) || empty($confirmPassword)){ die(json_encode(['success' => false, 'error' => '用户名密码不能为空'])); } if($password !== $confirmPassword){ die(json_encode(['success' => false, 'error' => '两次输入密码不一致'])); } // 此处省略数据库操作,假设注册功 echo json_encode(['success' => true]); ``` - `login.php` ```php <?php // 获取提交的数据 $username = $_POST['username']; $password = $_POST['password']; // 此处省略数据库操作,假设登录功 echo json_encode(['success' => true]); ``` - `check_username.php` ```php <?php // 获取提交的数据 $username = $_POST['username']; // 此处省略数据库操作,假设用户名已存在 echo json_encode(['success' => false, 'error' => '用户名已存在']); ``` 以上代码仅供参考,实际开发中需要根据具体需求进行适当修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值