code:html代码:<input type="text" name="usname" id="usname" size="19" onBlur='inspect(this)' />ajax代码:function inspect(){
var xmlHttp ;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlHttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var text = document.getElementById('usname').value ;
//var text1=document.getElementById('addtext').innerHTML;
var url = "addart.php?act=inspect" ;
xmlHttp.open("post",url,true);
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlHttp.send('text='+text);
xmlHttp.onreadystatechange=changecontent;
function changecontent(){
if (4==xmlHttp.readyState){
if (200==xmlHttp.status){
if(xmlHttp.responseText == "exist"){
alert("非法用户") ;
//document.getElementById('lab_name').innerHTML="用户名已存在" ;
} else {
alert("合法用户") ;
//document.getElementById('lab_name').innerHTML="合法用户名" ;
}
}else{
alert("发生错误!");
}
}
}
}php代码if($act == "inspect"){
$uname = $_REQUEST["text"] ;
$row = mysql_query("select id from usinfo where usname = $uname") ;
if ($row) {
echo "exist" ;
} else {
echo "none" ;
}
}如果输入英文则可以正常检测,如果输入数字则全部为非法的
var xmlHttp ;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlHttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var text = document.getElementById('usname').value ;
//var text1=document.getElementById('addtext').innerHTML;
var url = "addart.php?act=inspect" ;
xmlHttp.open("post",url,true);
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlHttp.send('text='+text);
xmlHttp.onreadystatechange=changecontent;
function changecontent(){
if (4==xmlHttp.readyState){
if (200==xmlHttp.status){
if(xmlHttp.responseText == "exist"){
alert("非法用户") ;
//document.getElementById('lab_name').innerHTML="用户名已存在" ;
} else {
alert("合法用户") ;
//document.getElementById('lab_name').innerHTML="合法用户名" ;
}
}else{
alert("发生错误!");
}
}
}
}php代码if($act == "inspect"){
$uname = $_REQUEST["text"] ;
$row = mysql_query("select id from usinfo where usname = $uname") ;
if ($row) {
echo "exist" ;
} else {
echo "none" ;
}
}如果输入英文则可以正常检测,如果输入数字则全部为非法的
$row = mysql_query("select `id` from `usinfo` where `usname` = '".$uname"' ") ;
把SQL 写的规整点
$row = mysql_query("select `id` from `usinfo` where `usname` = '".$uname."' ") ;
$uname = $_REQUEST['text'];
$result = mysql_query("SELECT `id` FROM `usinfo` WHERE `usname` = '{$uname}'";
if (mysql_num_rows($result) > 0) echo 'exist';
else echo 'none';
}
把sql语句放到db中直接执行 看结果符不符合你的需求
你原来写的代码中的if判断是有问题的,
$row = mysql_query("select id from usinfo where usname = $uname") ;
if ($row) //$row的值是mysql结果集的资源ID,即使上面的查询语句没有查询到数据,$row总是非false的
//所以,表中已经有abc了,但还是显示合法的
如果这样写,检查数字格式是可以的,检查字符型就会报这样的错误:- - - - - - - - - - - - - - The news from the web page - - - - - - - - - - - - - - < br / > < b > Warning < / b > : mysql_num_rows () : the argument is not a valid those MySQL resource in < b > day D: \ \ \ addart. WWW chat PHP < / b > < b > on line 40 < / b > < br / > none - - - - - - - - - - - - - - sure - - - - - - - - - - - - - -
$uname = $_REQUEST["text"] ;应该是$uname = $_REQUEST["usname"] ;
我打印了,现在已经排除错误了,因为sql语句错误!连接变量出错了