php - 用户名验证不起作用

标签 php mysql validation

我想验证用户名是否在我的数据库中,但它不起作用。我在数据库中添加用户名,但是当我验证其显示用户名可用时,现在该怎么办。我把我的代码

这就是 Dbconnector.php

<?php

class DbConnector {

    var $theQuery;
    var $link;

    function DbConnector(){

            // Get the main settings from the array we just loaded
            $host = 'host';
            $db = 'cms';
            $user = 'root';
            $pass = '';

            // Connect to the database
            $this->link = mysql_connect($host, $user, $pass);
            mysql_select_db($db);
            register_shutdown_function(array(&$this, 'close'));

        }

      //*** Function: query, Purpose: Execute a database query ***
        function query($query) {

            $this->theQuery = $query;
            return mysql_query($query, $this->link);

        }

        //*** Function: fetchArray, Purpose: Get array of query results ***
        function fetchArray($result) {

            return mysql_fetch_array($result);

        }

        //*** Function: close, Purpose: Close the connection ***
        function close() {

            mysql_close($this->link);

        }

    }

    ?>

这就是 Check.php

<?php
include("dbConnector.php");
$connector = new DbConnector();

$username = trim(strtolower($_POST['username']));
$username = mysql_escape_string($username);

$query = "SELECT Username FROM admin WHERE Username = '$username' LIMIT 1";
$result = $connector->query($query);
$num = mysql_num_rows($result);

echo $num;
mysql_close();

?>

这就是我的index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Papermashup.com | jQuery PHP Username Checker</title>
<link href="../style.css" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script>
$(document).ready(function(){
$('#username').keyup(username_check);
});

function username_check(){  
var username = $('#username').val();
if(username == "" || username.length < 4){
$('#username').css('border', '3px #CCC solid');
$('#tick').hide();
}else{

jQuery.ajax({
   type: "POST",
   url: "check.php",
   data: 'username='+ username,
   cache: false,
   success: function(response){
if(response == 1){
    $('#username').css('border', '3px #C33 solid'); 
    $('#tick').hide();
    $('#cross').fadeIn();
    }else{
    $('#username').css('border', '3px #090 solid');
    $('#cross').hide();
    $('#tick').fadeIn();
         }

}
});
}



}

</script>

<style>
#username{
    padding:3px;
    font-size:18px;
    border:3px #CCC solid;
}

#tick{display:none}
#cross{display:none}


</style>
</head>

<body>



Here are some usernames that have been put in the database:<br/><br />

Hammad, Huzaifa , Hanzlah<br/><br/>

Username: <input name="username" id="username" type="text" />
<img id="tick" src="tick.png" width="16" height="16"/>
<img id="cross" src="cross.png" width="16" height="16"/>


</body>
</html>

最佳答案

我认为问题出在你的 HTML 和 Js 上。

首先添加一个表单并给它一个id,例如#load然后输入 <input...../>形式。

现在更改您的 Jquery.ajax({ url:url +'check.php?'+$("#load").serialize() .

尝试一下,一定要使用Js Console来检查ajax请求是否发送及其反馈。

关于php - 用户名验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24425760/

相关文章:

php - 如何动态填充列表函数

mysql - mssql 到 mysql 转换工具

php - 将数据从一个列添加到另一个表的列 Laravel 5.2

validation - CakePHP 中嵌套所需的规则

php - 为 EntityType 设置数据属性(Sonata Admin)

php - 在zlib_decode()之后获取压缩的字节大小?

php - 添加特殊字符时出现 MySQL 错误,特别是符号,即使使用 mysql_real_escape_string() 方法

php - 如何在MySQL中进行多项计算?

validation - 在域驱动设计中,哪里可以验证分页逻辑?

CodeIgniter-表单验证和文件上传数据