注册 登录
编程论坛 ASP技术论坛

检测用户名是否存在,请帮我看看错在哪?

vcwindow 发布于 2008-04-22 18:33, 927 次点击
<script   language="javascript">   
      function   checkName(NameStr)   
      {   
            if(NameStr.replace(/\s/g,"")=="")   
            {   
                      document.form1.type.focus();   
                      alert("用户名不能为空!");   
            }   
            else   
            {   
    var xmlhttp =new ActiveXObject ("Microsoft.XMLHTTP");  
    xmlhttp.open("post","test.asp?uName="+NameStr,false);   
    xmlhttp.setrequestheader("contrn-type","text/xml");  
    xmlhttp.setrequestheader("contrn-charset","gb2312");  
xmlhttp.send();
    if(xmlhttp.responseText==0)  {
    alert("已经存在相同的用户名");   
      }
else{  
    alert("对不起,你不能使用");  
  }
     }   
      }   
  </script><input name="button" type="button" class="button" value="检测" onClick="checkName(document.form1.type.value)" ></td>




test.asp
<!--#include file="conn.asp" -->
<%   
dim   strNewName   
  strNewName=request("uName")   
  set rs=server.createobject("adodb.recordset")   
  sql="select * from   book  where  type='"&strNewName&"'"   
  rs.open  sql,conn,1,3  
  if  not(rs.eof and rs.bof)  then
  a1=rs("name")   
   response.write 0  
  else   
   response.write 1  

  end if   
  rs.close  
  set rs=nothing  
  %>   
     

  程序运行后,无论该名称是否存在,都会提示“对不起,你不能使用”这一行
6 回复
#2
icecool2008-04-22 23:36
你把这个 alert("对不起,你不能使用")

我觉得应该是放在test.asp页中,这样以Microsoft.XMLHTTP提交的数据反回的结果在当前页中作出提示的动作,思路会比较明了
#3
feelingxj2008-04-23 00:53
关键字
SQL = "SELECT * FROM book WHERE [type] = '"&strNewName&"'"
另外看你的程序,你还用了name作为数据字段名,这些尽量避免,实现不能避免要加[].
#4
zmhdxy2008-04-23 11:28
新手就用ajax 太强了 你可以直接就在text.asp中写
vUserName =trim(Request("user_name"))
 
  set rsUser=Conn.Execute("Select * from leavewords where UserName='"&vUserName&"'")
  if not rsUser.EOF then
  %>
  <script language="jscript">
  alert("用户名已存在!");
  history.go(-1);
  </script>
这个是我以前写的
ajax 我也正在学习 dom编程 的确好

[[it] 本帖最后由 zmhdxy 于 2008-4-23 11:29 编辑 [/it]]
#5
vcwindow2008-04-24 14:51
试了一下,都不行呀,再次郁闷中。。。
#6
yms1232008-04-24 15:37
用户名是中文?Ajax好像对中文支持的不是很好。
#7
vcwindow2008-04-24 15:59
英文的, a1=rs("name")    是能够返回查询到的值
1