php js用户名实时查看

时间:2014-12-31 19:31:06

标签: php jquery

我正在处理我的网站应用程序,以提供生命反馈,无论用户名是否可用。我走到了尽头,我想知道我是否能得到一些帮助。这是我的js代码:

$('#username').keyup(function() {


 var username = $(this).val();

$('#username_status').text('Searching...');

if (username !='') {
    $.post('username_check.php', { username: username}, function(data) {
        $('#username_status').text(data);
    });
} else{
    $('#username_status').text('');
}});

这是我的PHP代码:

<?php require_once("../includes/session.php"); ?>
<?php require_once("../includes/db_connection.php"); ?>
<?php require_once("../includes/functions.php"); ?>

<?php
  if (isset($_POST['username'])) {
  $username = mysqli_real_escape_string($_POST['username']);
  if (!empty($username)){
    $username_query = mysqli_query($con"SELECT COUNT('id') FROM 'attendant' WHERE 'username'='$username'");
    $username_result = mysqli_result($username_query, 0);

    if ($username_result == 0) {
      echo 'Username availabe!';
    } else if ($username_result == 1){
      echo 'sorry, that username is taken.';
    }
  }
}
 ?>

1 个答案:

答案 0 :(得分:1)

您的代码存在一些问题,正如我之前在评论中已经提到的那样,所以我决定在这方面发布一个答案,如果您没有看到它。很多时候,评论是看不见的,和/或被误解的。

  • (某事物)$con"SELECT之间缺少逗号 mysqli_query($con"SELECT 应该读作mysqli_query($con,"SELECT
  • mysqli_real_escape_string() 需要将DB连接作为第一个参数传递。

其中应为:

$username = mysqli_real_escape_string($con, $_POST['username']);
  • 对您的表格和列使用错误的identifiers,为引号'

在:

SELECT COUNT('id') FROM 'attendant' WHERE 'username'
             ^  ^       ^         ^       ^        ^

删除引号:

SELECT COUNT(id) FROM attendant WHERE username

或用反引号替换它们:

SELECT COUNT(`id`) FROM `attendant` WHERE `username`

<强>调试/故障排除:

编写代码时,将or die(mysqli_error($con))添加到mysqli_query()
并使用error reporting

旁注:错误报告应仅在暂存时完成,而不是生产。


洞察力:

  • 确保您的表单元素与您的变量相对应。

  • 另外,请确保您的数据库连接是mysqli_而不是mysql_或PDO。很多时候,人们将这些不同的API混合在一起;他们不混合。我这样说是因为我不知道您使用哪种API进行连接;你的代码/问题中没有任何迹象。


特别说明: