Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript验证用户名?_Javascript_Ajax_Validation - Fatal编程技术网

如何使用Javascript验证用户名?

如何使用Javascript验证用户名?,javascript,ajax,validation,Javascript,Ajax,Validation,我想知道如何使用Javascript验证用户在创建帐户时输入的用户名是否已经存在于数据库中,并要求用户键入任何其他用户名 答案是AJAX。如果必须对数据库进行验证,则需要调用服务器。在不重新加载页面的情况下实现这一点(编辑:正确)的唯一方法是AJAX。如何实现它将取决于您使用的javascript库(如果有的话)以及您的服务器是什么样的。我建议您对它进行一些搜索和阅读-这是一个非常常见的用例。答案是AJAX。如果必须对数据库进行验证,则需要调用服务器。在不重新加载页面的情况下实现这一点(编辑:正

我想知道如何使用Javascript验证用户在创建帐户时输入的用户名是否已经存在于数据库中,并要求用户键入任何其他用户名

答案是AJAX。如果必须对数据库进行验证,则需要调用服务器。在不重新加载页面的情况下实现这一点(编辑:正确)的唯一方法是AJAX。如何实现它将取决于您使用的javascript库(如果有的话)以及您的服务器是什么样的。我建议您对它进行一些搜索和阅读-这是一个非常常见的用例。

答案是AJAX。如果必须对数据库进行验证,则需要调用服务器。在不重新加载页面的情况下实现这一点(编辑:正确)的唯一方法是AJAX。如何实现它将取决于您使用的javascript库(如果有的话)以及您的服务器是什么样的。我建议您对它进行一些搜索和阅读-这是一个非常常见的用例

  • 元素的
    模糊事件附加侦听器
  • 使用AJAX向服务器发送请求(字段值作为参数)
  • 在服务器端,检查给定的用户名是否已在使用中
  • 根据服务器的响应显示(或否),此用户名已在消息中使用
  • jQuery(我太懒了,不适合纯JS)+PHP示例代码:

    <form ...>
        ...
        <input type="text" name="username" id="input-username" />
        <p class="error"></p>
        ...
    
    $("#input-username").blur(function() {
        $.post("/check-username.php", { username: $(this).val() }, function(data) {
            if ("0" == data) { /* username in use */
                 $(this).next("p").text("This username is already in use.</p>");
            } else {           /* username is fine */
                 $(this).next("p").empty();
            }
        });
    });
    
    <?php
    
    $username = $_POST['username'];
    
    // check whether given username exists in database
    $usernameExists = ...;
    
    echo $usernameExists ? '0' : '1'; // 0 if exists, 1 if not.
    
    
    ...
    

    ... $(“#输入用户名”).blur(函数(){ $.post(“/check username.php”,{username:$(this.val()},函数(数据){ 如果(“0”==数据){/*正在使用的用户名*/ $(this).next(“p”).text(“此用户名已在使用中。

    ”); }否则{/*用户名就可以了*/ $(this.next(“p”).empty(); } }); });
  • 元素的
    模糊事件附加侦听器
  • 使用AJAX向服务器发送请求(字段值作为参数)
  • 在服务器端,检查给定的用户名是否已在使用中
  • 根据服务器的响应显示(或否),此用户名已在消息中使用
  • jQuery(我太懒了,不适合纯JS)+PHP示例代码:

    <form ...>
        ...
        <input type="text" name="username" id="input-username" />
        <p class="error"></p>
        ...
    
    $("#input-username").blur(function() {
        $.post("/check-username.php", { username: $(this).val() }, function(data) {
            if ("0" == data) { /* username in use */
                 $(this).next("p").text("This username is already in use.</p>");
            } else {           /* username is fine */
                 $(this).next("p").empty();
            }
        });
    });
    
    <?php
    
    $username = $_POST['username'];
    
    // check whether given username exists in database
    $usernameExists = ...;
    
    echo $usernameExists ? '0' : '1'; // 0 if exists, 1 if not.
    
    
    ...
    

    ... $(“#输入用户名”).blur(函数(){ $.post(“/check username.php”,{username:$(this.val()},函数(数据){ 如果(“0”==数据){/*正在使用的用户名*/ $(this).next(“p”).text(“此用户名已在使用中。

    ”); }否则{/*用户名就可以了*/ $(this.next(“p”).empty(); } }); });
    Ajax可能不是唯一的解决方案,因为用户名通常是公共的。一种简单的方法是在某个点上创建一个RDF/XML文档(只随每个新用户的添加而更新),其中包含站点上所有用户的列表,您可以轻松地使用Javascript DOM遍历该列表,查看该用户是否已经在使用中。你还让他们支付计算能力,而不是你,这取决于你有多好,这是一个优势还是一个劣势。

    Ajax可能不是唯一的解决方案,因为用户名通常是公开的。一种简单的方法是在某个点上创建一个RDF/XML文档(只随每个新用户的添加而更新),其中包含站点上所有用户的列表,您可以轻松地使用Javascript DOM遍历该列表,查看该用户是否已经在使用中。你也让他们支付计算能力,而不是你,这取决于你有多好,这是一个优势还是一个劣势。

    就个人而言,我会使用JQuery验证插件来简化事情。


    但一般来说,它将包含一个对服务器(即JSON对象)的带有用户名的小AJAX请求,并在数据库中进行“搜索”,在用户点击文本字段中的enter或tab后返回true/false(附加一个事件侦听器)。然后在回调响应中更改所选的DOM元素,以向用户指示帐户名是否已存在于数据库中

    就个人而言,我会使用JQuery验证插件来简化事情。


    但一般来说,它将包含一个对服务器(即JSON对象)的带有用户名的小AJAX请求,并在数据库中进行“搜索”,在用户点击文本字段中的enter或tab后返回true/false(附加一个事件侦听器)。然后在回调响应中更改所选的DOM元素,以向用户指示帐户名是否已存在于数据库中

    简短的回答;只有javascript:那么,在客户端javascript检查之后,有什么可以阻止某人使用tamperdata发布自己的用户名呢?@Rook:这是一个不错的观点,但不用说客户端检查不应该是任何事情的最后一道防线。这并不意味着不应该进行客户端验证。它有助于用户,而不是数据完整性;只有javascript:那么,在客户端javascript检查之后,有什么可以阻止某人使用tamperdata发布自己的用户名呢?@Rook:这是一个不错的观点,但不用说客户端检查不应该是任何事情的最后一道防线。这并不意味着不应该进行客户端验证。它对用户很有帮助,而不是数据完整性。不重新加载页面的唯一方法是AJAX。好。。。从技术上讲,AJAX不是唯一的解决方案,但它是唯一值得考虑的。@Crozin:没错。您可以使用页面加载每个用户名,或者使用AJAX风格的东西,比如古怪的iframe。有无数种错误的方法可以做到这一点,唯一不用重新加载页面的方法是AJAX。好。。。从技术上讲,AJAX不是唯一的解决方案,但它是唯一值得考虑的。@Crozin:没错。你可以用页面加载每个用户名之类的操作