首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查登录名是否存在的AJAX

问检查登录名是否存在的AJAX
EN

Stack Overflow用户
提问于 2010-09-09 07:30:54
回答 3查看 2.3K关注 0票数 0

我有一个登录框..。

当用户开始输入..。我想检查输入的登录名是否存在于数据库中.

如果登录名存在,我将设置登录按钮active.如果它不存在,我将设置登录按钮停用.

当然,我需要AJAX通过PHP来执行mySQL,我不知道它将如何完成.

让我们说这是我的查询

代码语言:javascript
复制
<?php 
    $result = mysql_query("SELECT * FROM accounts WHERE name='mytextboxvalue'"); 
?>

怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-09 11:43:15

保持简单:

代码语言:javascript
复制
$(document).ready(function(){
    var Form = $('#myForm');
    var Input = $('input.username',Form)

    Input.change(function(event){
        Value = Input.val();
        if(Value.length > 5)
        {
            $.getJSON('/path/to/username_check.php',{username:Value},function(response){
                if(response.valid == true)
                {
                    Form.find('input[type*=submit]').attr('disabled','false');
                }else
                {
                     Form.find('input[type*=submit]').attr('disabled','true');
                }
            });
        }
    });
});

然后PHP端。

代码语言:javascript
复制
<?php
//Load DB Connections etc.
if(!empty($_REQUEST['username']))
{
    $username = mysql_real_escape_string($_REQUEST['username']);

    if(isset($_SESSION['username_tmp'][$username]))
    {
        echo json_encode(array('valid' => (bool)$_SESSION['username_tmp'][$username]));
        die();
    }
    //Check the database here... $num_rows being a validation var from mysql_result
    $_SESSION['username_tmp'][$username] = ($num_rows == 0) ? true : false;

    echo json_encode(array('valid' => (bool)$_SESSION['username_tmp'][$username]));
    die();
}
?>
票数 1
EN

Stack Overflow用户

发布于 2010-09-09 09:31:03

您可以使用JSON,这里是在php中实现。

在JQuery中,您可以使用以下代码。

代码语言:javascript
复制
var id = 1;
function check_login(){
  var request = JSON.stringify({'jsonrpc': '2.0',
                       'method': 'login_check', 
                       'params': [$('#login_box').val()],
                       'id': id++});
  $.ajax({url: "json_rpc.php", 
        data: request,
        success: function(data) {
          if (data) {
            $('#login_button').removeAttr('disabled');
          } else {
            $('#login_button').attr('disabled', true);
          }
        },
        contentType: 'application/json',
        dataType: 'json',
        type:"POST"});
}

和

代码语言:javascript
复制
<?php

include 'jsonRPCServer.php';
//mysql_connect 
//mysql_select_db
class Service {
  public function login_check($login) {
     $login = mysql_real_escape_string($login);
     $id = mysql_query("SELECT * FROM accounts WHERE name='$login'");
     return mysql_num_rows($id) != 0;
  }
}


$service = new Service();

jsonRPCServer::handle($service);

?>
票数 1
EN

Stack Overflow用户

发布于 2010-09-09 08:11:00

看看jQuery 阿贾克斯和jQuery TypeWatch

但就像halfdan说的,这是一个潜在的安全风险。我从来没有见过一个网站这样做的用户名,只有搜索结果。

您可能会在您的网站上提供一个端点(URL),任何人都可以查询该端点(URL)以确定用户名是否有效。无论是否内部网,这都是一种风险。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3674584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档