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

我的代码有问题 出现Microsoft VBScript 编译器错误 '800a0400' 缺少语句 chatadd1.asp, line 119 求大

发布于 2010-05-02 18:07, 4353 次点击
代码如下:
<html>
<body bgcolor="#DF9FCF">  
<% Response.Buffer=true %>                                                  ' 指定缓存为真
<% addr=Request("REMOTE_ADDR") %>                                   ' 获取用户ip
<% if session("user")="" and request("name")="" then %>           '如果用户是第一次登录
<form method="POST" action="chatadd1.asp">     
<p><input type="hidden" name="IP" value="<%=addr%>"><p>
<p>请输入用户名:<input type="text" name="name" size="15">
      密码:<input type="password" name="pass" size="15">
      性别:<selet name="D4" size="1" style="color:rgb(0,0,128)">
             <option value="先生”>先生
             </option>
             <option value="女士”>女士
             </option>
             </select>
<input type="submit" value="登录" name="B1">
<input type="reset"  value="复原" name="B2">
</P>
</form>
<%=Request("a")%>                                                           ' 返回的错误变量
<% else %>
<%B1=Request("B1")%>
If B1="登录" Then                                                                ' 开始判断用户名与密码
     If Request("name")=""or Request("pass")="" Then                 ' 判断用户名与密码是否为空
      a="名字或密码不能为空!<br>"
      Response.Redirect "chatadd1.asp?a=" & a &" "                  '错误一旦出现出现立即返回登陆界面
 end if
'建立数据库连接
dim conn,dbpath
dim connstr
'数据库目录
dbpath="chat.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)
conn.Open connstr   
'查看在线数据库中是否存在这个用户
   sql="SELECT * FROM 用户表 WHERE 姓名='" & Request("name") & "'"
   Set Rs=conn.Execute(sql)
If Rs.Bof OR Rs.Eof Then                                                     ' 如果在线数据库中存在这个用户名           a=" 用户名错误,请输入正确的用户名! "
    Response.Redirect "chatadd1.asp?a=" & a &" "   
Else
   If Reuest("pass")<>Rs("密码") Then
     a=" 用户正确,但你输入的口令不对!<br> "
     Response.Redirect "chatadd1.asp?a=" & a &" "   
   end if
end if
session("user")=request("name")
sql6="select * from 在线用户表 WHERE 姓名='" & session("user") & "'"
conn.Execute(sql6)
Set rootRs=conn.Execute(sql6)
if not rootRs.Eof then
    a="该用户已经在聊天室 请重新登录! <br>"
     session("user")=""
     Response.Redirect "chatadd1.asp?a=" & a &" "   
End if
time1=now                                    '如果登录表单没有任何错误,则开始成为在线用户并进入聊天
sql="SELECT * FROM 在线用户表 WHERE 姓名='" & session("user") & "'"
Set Rs=conn.Execute(sql)
 ' 如果在线用户表中的却没有这个用户,则在在线用户表中添加这个用户
If Rs.Bof OR Rs.Eof Then  
   sz = "'" & Request("name") & "','" & Request("D4") & "', '" & time1 & "'"
   into_db = "INSERT INTO 在线用户表 ( 姓名 ,性别 ,登l陆时间 ) VALUES(" & sz &")"
   conn.Execute( into_db)
   name=session("user")
   sex=Request("D4")
   ming="管理员宣布"                        ' 管理员开始宣布欢迎这位 ( 先生 / 女士 ) 的光临
   sz="<font size=5 color=#FF000><strong>" & "热烈欢迎" & name & sex & "的光临"
   into_db2 = "INSERT INTO 聊天表 ( 姓名 ,说话 ) VALUES('" & ming &"','" & sz & "')"
   conn.Execute( into_db2)
   conn.close
  end if
  end if%>
' 用户开始真正发言
<% addr=Request("REMOTE_ADDR")%>                       ' 获取客户端ip           
<form method="POST" action="chatadd1.asp">            '定义表单的提交方法和处理表单的程序
<p><input type="hidden" name="IP" value="<%=addr%>"></p>  '将客户端的ip地址定义在隐藏域
<p><input type="hidden" name="name" value="<%=session("user")%>"><p>
<p><input type="text" name="word" size="70"><input type="submit" value="发言"      
 name="B3"><input type="reset" value="复原" name="B4">
<P>颜色:<selet name="D1" size="1" style="color: rgb(0,0,128)">       ' 颜色选择
<option value=" ">黑色
</option>
<option  value="#ff0000">红色
</option>
<option  value="#008000">绿色
</option>
<option  value="#0000ff">蓝色
</option>
<option  value="#800080">紫色
</option>
<option  value="#008080">青色
</option>
<option  value="#800000">深红色
</option>
<option  value="#00ff00">草绿色
</option>
<option  value="#00ffff">海蓝色
</option>
100 </select>
<%
dim conn,dbpath
dim connstr
'数据库目录
dbpath="chat.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)
conn.Open connstr                                          
sql=" SELECT *  FROM  在线用户表 "
Set Rs=conn.Execute(sql)                                   ' 将查询结果返回到记录集Rs中
%>     
     ' 在线用户表中选择说话对象
对象:<select name="D2" size="1" style="color: rgb(0,0,128)">
<option value="大家">大家</option>
<% Do While not Rs.Eof
if Rs("姓名")=Request("D2") then
s="selected"      
else
s=""
120  end if
%>
<option <%=s%> value="<%=Rs("姓名")%>"><%=Rs("姓名")%>(<%=Rs("性别")%>)
</option>
<%
Rs.MoveNext
Loop
 %>
</select>
表情:<select name="D3" size="1" style="color: rgb(0,0,128)">
<option   value="微笑着对">微笑</option>
<option   value="大笑着对">大笑</option>
<option   value="哭泣着对">哭泣</option>
<option   value="害羞着对">害羞</option>
<option   value="红着脸对">脸红</option>
<option   value="微笑着对">微笑</option>
<option   value="愤怒着对">愤怒</option>
<option   value="阴沉着对">阴沉</option>
<option   value="奸笑着对">奸笑</option>
</select>
&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="离开聊天室" name="B5">
</form>
<%
B3=Request("B3")                           ' 准备把用户发言写到聊天室中
If B3="发言" Then
dim conn,dbpath
dim connstr
'数据库目录
dbpath="chat.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)
conn.Open connstr   
%>
<%
word=Request("word")  
if Reruest("word")="" then
word="两眼开开,正在发呆....."               ' 如果什么都没写就发言,则默认发言为两眼开开,正在发呆
end if
%>
<%
sz = "'" & Request("ip") & "', '" & session("user") & "' , '" & Request("D1") & "' , '" & Request("D3") &_ "' , '" & Request("D2") & "' , '" & word & "'"
' 把用户发言写到聊天表中
into_db = "INSERT INTO 聊天表 (  ip , 姓名 , 颜色, 表情, 说话对象, 说话 ) VALUES(" & sz & ")"
 conn.Execute( into_db)
 conn.close
 end if
' 如果用户选择离开聊天室则从在线名单中把他删除
B5=Request("B5")
If B5="离开聊天室" Then
dim conn,dbpath
dim connstr
'数据库目录
dbpath="chat.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)
conn.Open connstr   
sql5="DELETE * FROM 在线用户表 WHERE 姓名='" & session("user") & "'"
conn.Execute(sql5)
name1=session("user")
sex1=Request("D4")
ming1="管理员宣布"                  ' 管理员宣布此用户离开
sz1="<font size=5 color=#ff0000><strong>" & name1 & sex1 &  "有事先离开,欢迎再来"      
into_db2 = "INSERT INTO 聊天表 ( 姓名 ,说话 ) VALUES('" & ming1 &"','" & sz1 & "')"
conn.Execute( into_db2)
conn.close
session("user")=""                              ' 当用户离开聊天室后释放该用户
Response.Redirect "chat.asp"
end if
end if
%>
</body>
</html>



                        
8 回复
#2
yms1232010-05-02 18:20
请把系统报错的信息也全部都贴出来
#3
2010-05-02 18:25
贴出来了呀!
Microsoft VBScript 编译器错误 '800a0400'

缺少语句

\chatadd1.asp, line 119

#4
2010-05-02 18:26
   都弄一下午了弄不好     拜托帮我解决下万分感谢!急
#5
yms1232010-05-02 18:51
<html>
<body bgcolor="#DF9FCF">  
<% Response.Buffer=true %>                                                  ' 指定缓存为真
<% addr=Request("REMOTE_ADDR") %>                                   ' 获取用户ip
<% if session("user")="" and request("name")="" then %>           '如果用户是第一次登录
   <form method="POST" action="chatadd1.asp">     
   <p><input type="hidden" name="IP" value="<%=addr%>"><p>
   <p>请输入用户名:<input type="text" name="name" size="15">
      密码:<input type="password" name="pass" size="15">
      性别:<selet name="D4" size="1" style="color:rgb(0,0,128)">
             <option value="先生”>先生</option>
             <option value="女士”>女士</option>
           </select>
     <input type="submit" value="登录" name="B1">
     <input type="reset"  value="复原" name="B2">
    </P>
  </form>
  <%=Request("a")%>                                                           ' 返回的错误变量
<%else %>
  <%B1=Request("B1")%>
<%这个是我补的
  If B1="登录" Then                                                                ' 开始判断用户名与密码
     If Request("name")=""or Request("pass")="" Then                 ' 判断用户名与密码是否为空
        a="名字或密码不能为空!<br>"
        Response.Redirect "chatadd1.asp?a=" & a &" "                  '错误一旦出现出现立即返回登陆界面
  end if
  '建立数据库连接
  dim conn,dbpath
  dim connstr
  '数据库目录
  dbpath="chat.mdb"
  Set conn = Server.CreateObject("ADODB.Connection")
  connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)
  conn.Open connstr   
  '查看在线数据库中是否存在这个用户
  sql="SELECT * FROM 用户表 WHERE 姓名='" & Request("name") & "'"
  Set Rs=conn.Execute(sql)
  If Rs.Bof OR Rs.Eof Then' 如果在线数据库中存在这个用户名           
     a=" 用户名错误,请输入正确的用户名! "
    Response.Redirect "chatadd1.asp?a=" & a &" "   
 Else
    If Reuest("pass")<>Rs("密码") Then
       a=" 用户正确,但你输入的口令不对!<br> "
       Response.Redirect "chatadd1.asp?a=" & a &" "   
    end if
 end if
 session("user")=request("name")
  sql6="select * from 在线用户表 WHERE 姓名='" & session("user") & "'"
  conn.Execute(sql6)
  Set rootRs=conn.Execute(sql6)
  if not rootRs.Eof then
     a="该用户已经在聊天室 请重新登录! <br>"
     session("user")=""
     Response.Redirect "chatadd1.asp?a=" & a &" "   
  End if
  time1=now'如果登录表单没有任何错误,则开始成为在线用户并进入聊天
  sql="SELECT * FROM 在线用户表 WHERE 姓名='" & session("user") & "'"
  Set Rs=conn.Execute(sql)
  ' 如果在线用户表中的却没有这个用户,则在在线用户表中添加这个用户
  If Rs.Bof OR Rs.Eof Then  
     sz = "'" & Request("name") & "','" & Request("D4") & "', '" & time1 & "'"
     into_db = "INSERT INTO 在线用户表 ( 姓名 ,性别 ,登l陆时间 ) VALUES(" & sz &")"
     conn.Execute( into_db)
     name=session("user")
     sex=Request("D4")
     ming="管理员宣布"  ' 管理员开始宣布欢迎这位 ( 先生 / 女士 ) 的光临
     sz="<font size=5 color=#FF000><strong>" & "热烈欢迎" & name & sex & "的光临"
     into_db2 = "INSERT INTO 聊天表 ( 姓名 ,说话 ) VALUES('" & ming &"','" & sz & "')"
     conn.Execute( into_db2)
     conn.close
  end if
end if
%>
' 用户开始真正发言
<%addr=Request("REMOTE_ADDR")%>                       ' 获取客户端ip           
<form method="POST" action="chatadd1.asp">            '定义表单的提交方法和处理表单的程序
  <p><input type="hidden" name="IP" value="<%=addr%>"></p>  '将客户端的ip地址定义在隐藏域
  <p><input type="hidden" name="name" value="<%=session("user")%>"><p>
  <p><input type="text" name="word" size="70">
     <input type="submit" value="发言" name="B3">
     <input type="reset" value="复原" name="B4">
  <P>颜色:
     <selet name="D1" size="1" style="color: rgb(0,0,128)">       ' 颜色选择
       <option value=" ">黑色</option>
       <option  value="#ff0000">红色</option>
       <option  value="#008000">绿色</option>
       <option  value="#0000ff">蓝色</option>
       <option  value="#800080">紫色</option>
       <option  value="#008080">青色</option>
       <option  value="#800000">深红色</option>
       <option  value="#00ff00">草绿色</option>
       <option  value="#00ffff">海蓝色</option>
   </select>
<%
dim conn,dbpath
dim connstr
'数据库目录
dbpath="chat.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)
conn.Open connstr                                          
sql=" SELECT *  FROM  在线用户表 "
Set Rs=conn.Execute(sql)                                   ' 将查询结果返回到记录集Rs中
%>     
' 在线用户表中选择说话对象
对象:<select name="D2" size="1" style="color: rgb(0,0,128)">
<option value="大家">大家</option>
<%
  Do While not Rs.Eof
     if Rs("姓名")=Request("D2") then
        s="selected"      
     else
       s=""
    end if
    %><option <%=s%> value="<%=Rs("姓名")%>"><%=Rs("姓名")%>(<%=Rs("性别")%>)</option><%
    Rs.MoveNext
Loop
%>
</select>
表情:<select name="D3" size="1" style="color: rgb(0,0,128)">
<option   value="微笑着对">微笑</option>
<option   value="大笑着对">大笑</option>
<option   value="哭泣着对">哭泣</option>
<option   value="害羞着对">害羞</option>
<option   value="红着脸对">脸红</option>
<option   value="微笑着对">微笑</option>
<option   value="愤怒着对">愤怒</option>
<option   value="阴沉着对">阴沉</option>
<option   value="奸笑着对">奸笑</option>
</select>
&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="离开聊天室" name="B5">
</form>
<%
B3=Request("B3")                           ' 准备把用户发言写到聊天室中
If B3="发言" Then
   dim conn,dbpath
   dim connstr
   '数据库目录
   dbpath="chat.mdb"
   Set conn = Server.CreateObject("ADODB.Connection")
   connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)
   conn.Open connstr   
%>
<%
   word=Request("word")  
   if Reruest("word")="" then
      word="两眼开开,正在发呆....."               ' 如果什么都没写就发言,则默认发言为两眼开开,正在发呆
   end if
%>
<%
   sz = "'" & Request("ip") & "', '" & session("user") & "' , '" & Request("D1") & "' , '" & Request("D3") &_ "' , '" & Request("D2") & "' , '" & word & "'"
' 把用户发言写到聊天表中
  into_db = "INSERT INTO 聊天表 (  ip , 姓名 , 颜色, 表情, 说话对象, 说话 ) VALUES(" & sz & ")"
  conn.Execute( into_db)
  conn.close
end if
' 如果用户选择离开聊天室则从在线名单中把他删除
B5=Request("B5")
If B5="离开聊天室" Then
   dim conn,dbpath
   dim connstr
   '数据库目录
   dbpath="chat.mdb"
   Set conn = Server.CreateObject("ADODB.Connection")
   connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)
   conn.Open connstr   
   sql5="DELETE * FROM 在线用户表 WHERE 姓名='" & session("user") & "'"
   conn.Execute(sql5)
   name1=session("user")
   sex1=Request("D4")
   ming1="管理员宣布"                  ' 管理员宣布此用户离开
   sz1="<font size=5 color=#ff0000><strong>" & name1 & sex1 &  "有事先离开,欢迎再来"      
   into_db2 = "INSERT INTO 聊天表 ( 姓名 ,说话 ) VALUES('" & ming1 &"','" & sz1 & "')"
   conn.Execute( into_db2)
   conn.close
   session("user")=""                              ' 当用户离开聊天室后释放该用户
   Response.Redirect "chat.asp"
   end if'这个end if对应的if判断在哪?
end if
%>
</body>
</html>
if xxx Then
   xxx
End IF
语句之间要有缩进,有些错误就是发生在不注重格式的时候。
#6
2010-05-02 23:33
谢谢你的帮助! 但还有问题 希望帮我在改下!感激不尽!
#7
yms1232010-05-03 11:22
什么问题?
#8
2010-05-03 12:16
基本解决了   拼写错误!哎  不过另一个又出现小错误  解决不了的话再请教你帮忙!  很感谢你 那个分怎么给你呀  不会给。
#9
yms1232010-05-03 13:35
以下是引用阿呆2009在2010-5-3 12:16:02的发言:

基本解决了   拼写错误!哎  不过另一个又出现小错误  解决不了的话再请教你帮忙!  很感谢你 那个分怎么给你呀  不会给。
结贴就会出现给分的文本框
1