检查用户名或密码可用性上笨

检查用户名或密码可用性上笨

问题描述:

奥凯家伙使用AJAX,我使用AJAX来验证用户名的availiblity有一定的问题,这是我笨代码:检查用户名或密码可用性上笨

VIEW 一个。表格

<input type="text" class="form-control" placeholder="New Username" name="userId" id="userId" value="" onblur="return check_username();"> 
<div id="Info"></div></span><span id="Loading"><img src="<?php echo base_url(); ?>assets/img/loading.gif" alt="" /></span> 

b。脚本

<script src="<?php echo base_url(); ?>assets/plugins/jquery-1.8.3.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
     $(document).ready(function() { 
     $('#Loading').hide();  
      }); 

     function check_username(){ 

     var username = $("#userId").val(); 
      if(username.length > 2){ 
      $('#Loading').show(); 
      $.post("<?php echo base_url(); ?>admin/check_username_availablity", { 
       username: $('#userId').val(), 
       }, function(response){ 
      $('#Info').fadeOut(); 
      $('#Loading').hide(); 
     setTimeout("finishAjax('Info', '"+escape(response)+"')", 450); 
      }); 
     return false; 
     } 
    } 

function finishAjax(id, response){ 

    $('#'+id).html(unescape(response)); 
    $('#'+id).fadeIn(1000); 
} 
</script> 

模态

public function check_username_availablity(){ 
     $username = trim($this->input->post('userId')); 
     $username = strtolower($username); 

     $query = $this->db->query("SELECT * FROM table_user WHERE userId='$username'"); 
     if($query->num_rows() > 0) 
      return false; 
     else 
      return true;} 

CONTROLLERS

public function check_username_availablity(){ 
     $this->load->model('m_admin'); 
     $get_result = $this->m_admin->check_username_availablity(); 

     if(!$get_result) 
      echo '<span style="color:#f00">Username already in use. </span>'; 
     else 
      echo '<span style="color:#00c">Username Available</span>'; 
    } 

的问题是在形式总是表明用户名可用。 请帮忙.. :)

您从jQuery的传递usernameusername: $('#userId').val()没有userId

尝试从jQuery的与$this->input->post('username')

$username = strtolower(trim($this->input->post('username'))); 

或更改下列发布的数据指标:usernameuserId

userId: $('#userId').val() 

1:当我的用户名是''; DELETE FROM table_user;'“会发生什么?您的查询就会变成:

SELECT * FROM table_user WHERE userId = '';DELETE FROM table_user;'' 

所以我们进行了修复:(并请:阅读弹射手册)

$this->db->query('SELECT * FROM table_user WHERE userId = ?',array($username)); 

2:不要把业务逻辑模型:

function check_username_availability($username) 
{ 
    // also the name of this function could better describe what it does: 
    // is_username_available($username) for instance. 
    // ... 
} 

3:查询选择用户的输出是什么?你尝试调试什么?

die(var_dump($this->db->last_query())); 

4:你一定要明白你正在检查用户ID针对用户NAME吧?