PHP检查用户名是否可用 [英] PHP check if username is available

查看:129
本文介绍了PHP检查用户名是否可用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在检查用户名是否存在于数据库中.用户键入此用户名时,它将检查数据库中是否存在该用户名.我有一个错误

I'm working on checking if the username exists from the database. While the user is typing this username, it will check up if it exists from the database. I've got an error

警告:mysql_result()期望参数1为资源,在第12行的username_check.php中提供布尔值.

Warning: mysql_result() expects parameter 1 to be resource, boolean given in username_check.php on line 12.

HTML代码

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">

        </style>
    </head>
    <body>
        <input id="username" type="text">
        <span id="username_status"></span>
        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript" src="js/users.js"></script>
    </body>
</html>

users.js

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

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

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

db.php

<?php

mysql_connect('xxx', 'xxx', 'xxx');
mysql_select_db('xxx');

?>

username_check.php

<?php

require 'db.php';

if (isset($_POST['username'])) {
    $username = mysql_real_escape_string($_POST['username']);

    if (!empty($username)) {
        $username_query = mysql_query("SELECT COUNT user_id
                                       FROM users
                                       WHERE username = '$username'");
         echo $username_result = mysql_result($username_query, 0);
    }
}

?>

推荐答案

要首先使用php检查用户名,您需要请求html的输入. 在这里,我正在为此目的使用ajax技术.您可以观看 ajax实时用户名可用性检查

To check username using php first you need to request a input from html. Here i am using ajax technique for this purpose.You can watch demo and download link from ajax live username availability check

Demo.html

 <!DOCTYPE html>
<head>
<script>
function check(str) {
if (str.length == 0) { 
document.getElementById("demo").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "demo.php?u=" + str, true);
xmlhttp.send();
}
}
</script>
</head>
<body>
<center>
<form>
<div style="margin-top:200px">
<h3 id="demo">  </h3>
Enter Username to check availability: <input type="text" name="user" placeholder="EnterUserName" onKeyUp="check(this.value)"/> 
</div>
</form>
</center>
</body>
</html>

Demo.php

 <?php
$user=trim($_GET['u']);
@mysql_connect("localhost","root","");
@mysql_select_db("test");
if($user!="")
{
$sql="select user from users where user='$user'";
$user_array=array();
$rdata=mysql_query($sql);
$res=mysql_fetch_array($rdata);
if($res['user']==$user)
{
echo " <p style='color:red;'><b>\"$user\"</b> Is already taken.</p>";
}
else
{
echo "<p style='color:green;'><b>\"$user\"</b> is available.</p>";
}
}
?>

Users.sql

-- phpMyAdmin SQL Dump
-- version 2.10.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Sep 12, 2016 at 12:13 PM
-- Server version: 5.0.41
-- PHP Version: 5.2.3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `test`
--

-- --------------------------------------------------------

--
-- Table structure for table `users`
--

CREATE TABLE `users` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`user` VARCHAR(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`id`, `user`) VALUES
(1, 'mahendra'),
(2, 'narendra'),
(3, 'michael'),
(4, 'ankit');

这篇关于PHP检查用户名是否可用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆