验证用户名是否存在

在注册的时候,常会进行用户名验证,如果输入的用户名已经存在,立刻给出提示而不是等信息填写完后进行验证,如果输入信息很多的话,不仅信息会丢失,并且会进行一次回传,很恼火,那么注册的时候使用Ajax验证一下,就可以避免这些问题了,下面给出最简单的使用示例,判断用户名是否存在:

 第一种:最原始的JS验证

 HMTL代码:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title></title>
    <script language="javascript" type="text/javascript" src="CheckUserName.js"></script>
    <script language="javascript">
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <table cellpadding="0" cellspacing="0" width="100%">
        <tr>
          <td>Ajax Example:</td>
        </tr>
        <tr>
            <td>
                <table cellpadding="0" cellspacing="0" width="100%">
                  <tr>
                    <td>Example 1:Check UserName IsExists</td>
                  </tr>
                  <tr>
                    <td>
                        <asp:Label ID="lblUserName" runat="server" Text="用户名:"></asp:Label>
                        <input id="txtUserName" type="text" οnblur="onBlur()"/>
                    </td>
                  </tr>
                </table>
            </td>
        </tr>
    </table>
    </form>
</body>
</html>

 

//CheckUserName.js

var ajax = function(option)
{
    var request;
    var createRequest = function()
    {
        var request;
        if (window.XMLHttpRequest)
        {
            request = new XMLHttpRequest();
        }
        else
        {
            try
            {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
                request = new ActiveXObject("Msxml2.XMLHTTP");
            }
        }
        return request;
    }

    var sendRequest = function()
    {
        request = createRequest();
//        request.open("post", option.url, true);
//        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//        request.onreadystatechange = ResponseRequest;
//        request.send(option.param);
        request.open("get", option.url+"?t=0", true);
        request.onreadystatechange = ResponseRequest;
        request.send(null);    
    }

    var ResponseRequest = function()
    {
        if (request.readyState == 4)
        {
            if (request.status == 200)
            {
                option.Success(request);
            }
            else
            {
                option.Failure(request); 
            }
        }
    }
    sendRequest();
}

var onBlur = function()
{
    var option = { url: "Test.aspx", param: "t=1", Success:function(request){alert(request.responseText);}, Faitrue: function(request) { alert(false) } };
    new ajax(option);
}

 

//Test.aspx

protected void Page_Load(object sender, EventArgs e)
 {
            if (Request["t"] != null)
            {
                this.Response.Clear();
                string t = Request["t"].ToString();
                if (t == "1")
                {
                    Response.Write("用户名已存在,请填写其他的用户名!");
                }
                else if (t == "0")
                {
                    Response.Write("该用户名没被注册,可以使用!");
                }
                this.Response.End();
            }
 }

 

 第二种方式:利用JQuery框架ajax验证

 HMTL代码:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
    <script src="jquery-1.2.6.min.js" type="text/javascript"></script>
    <script>
        $(document).ready(function() {
        $("#Button1").click(function() {
                $.ajax({
                    type: "get",
                    url: "ResponsePage.aspx?t=0",
                    dataType: 'html',
                    success: function(data) {
                        alert("post " + data);
                    },
                    error: function() { alert('error!'); }
                });
            });
        });

    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id="Button1" type="button" value="显示" />
    </div>
    </form>
</body>
</html>

//ResponsePage.apsx

protected void Page_Load(object sender, EventArgs e)
{
            this.Response.Clear();
            string t = Request["t"].ToString();
            if (t == "1")
            {
                Response.Write("用户名已存在,请填写其他的用户名!");
            }
            else if (t == "0")
            {
                Response.Write("该用户名没被注册,可以使用!");
            }
            this.Response.End();
}

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个基于Python的用户注册和登录程序,使用了Python自带的hashlib库来实现MD5加密。 ```python import hashlib def register(): username = input("请输入用户名:") password = input("请输入密码:") # 判断用户名是否已存在 with open("user.txt", "r") as f: for line in f: if username == line.split()[0]: print("用户名存在!") return # 判断用户名是否符合规范 if not username.isalnum() or not username[0].isalpha() or not 5 <= len(username) <= 20: print("用户名不符合规范!") return # 判断密码是否符合规范 if not any(ch.isupper() for ch in password) or \ not any(ch.islower() for ch in password) or \ not any(ch.isdigit() for ch in password) or \ not 8 <= len(password) <= 16: print("密码不符合规范!") return # 将用户名和密码(加密后的MD5值)写入文件 with open("user.txt", "a") as f: md5 = hashlib.md5() md5.update(password.encode()) f.write(f"{username} {md5.hexdigest()}\n") print("注册成功!") def login(): username = input("请输入用户名:") password = input("请输入密码:") # 判断用户名是否存在 with open("user.txt", "r") as f: for line in f: if username == line.split()[0]: md5 = hashlib.md5() md5.update(password.encode()) if md5.hexdigest() == line.split()[1]: print("登录成功!") return else: print("密码错误!") return print("用户名不存在!") while True: print("1. 注册\n2. 登录\n3. 退出") choice = input("请选择:") if choice == "1": register() elif choice == "2": login() elif choice == "3": break else: print("输入错误,请重新输入!") ``` 运行程序后,按照提示进行操作即可。如下图所示,先选择注册,然后输入姓名加学号作为用户名和密码,程序会将密码进行MD5加密并写入文件中。再选择登录,输入刚才注册的用户名和密码,程序会验证用户名和密码是否正确,如果正确就提示登录成功。 ![用户注册和登录程序运行结果截图](https://cdn.luogu.com.cn/upload/image_hosting/m6pckv9o.png)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值