php检查数据库中是否存在用户名

时间:2013-08-15 01:15:13

标签: php javascript jquery mysql ajax

所以我有一个用户form注册,我想要做的是:当用户输入电子邮件时,如果电子邮件已被使用,网站将检查我的数据库点击注册按钮。

我遇到的问题是它不会检查。它只会显示“在数据库中搜索”。我只是想发布我的代码,所以也许有人可以抓住我正在制作的错误。

这是我的注册页面的一部分:

<tr class = "spacearound"> <!-- input for email address -->
    <th> &emsp;Email: </th>
    <td>
        <input type = "text" id = "user_email" size = "50"
            maxlength = "50" name = "u_email" 
            title = "Enter your email please" 
            onchange = "EmailCheck();" 
            onkeypress = "return InputLimiter(event, 'emailCharacters');"
            /> &#42;
        <span id = "email_status"> </span>
    </td>
    <td><?php  echo $message; ?></td>
</tr>

这是我的 JavaScript 文件,“checkusers.js”:

$('#user_email').keyup(function() {
    var username = $(this).val();

    $('#email_status').text('Searching database.');

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

});

这是我的 php 文件,我在那里查了一封电子邮件,“checkemail.php”:

<?php
    define('dbHost', 'xxxxx');
    define('dbUser', 'xxxxx');
    define('dbPassword', 'xxxxx');
    define('dbName', 'xxxxx');
    error_reporting(E_ALL ^ E_NOTICE);

    $db = mysqli_connect(dbHost, dbUser, dbPassword, dbName);

    if(mysqli_connect_errno()) { //if connection database fails
        echo("Connection not established ");
    }  //by now we have connection to the database

    if(isset($_POST))['username'])){ //if we get the name succesfully
    $username = mysqli_real_escape_string($db, $_POST['username']);
        if (!empty($username)) {
            $username_query = mysqli_query($db, "SELECT COUNT(`firstName`) FROM `users` WHERE `email`='$username'");    

        $username_result = mysqli_fetch_row($username_query);

            if ($username_result[0] == '0') {
                echo 'Email available!';
            } else {
                echo 'Sorry, the email '.$username.' is taken.';
            }
        }
    }

?>

1 个答案:

答案 0 :(得分:4)

你这里有错误

if(isset($_POST))['username'])){

应该是

if(isset($_POST['username'])){

$_POST['username']应该包含在isset函数