永发信息网

ASP文件怎么无法连接数据库?

答案:6  悬赏:0  手机版
解决时间 2021-07-30 06:27

<%Reponse.Buffer=true%>
<%if Request("name")=""then%>
<%addr=Request("REMOTE_ADDR")%>
<form method="post" name=form1 action="chatadd1.asp">
<input type="hidden" name="IP" value="<%addr%>"><p>
请输入用户名:<input type="text" name="name" size="15"><p>
密码:<input type="password" name="pass" size="15"><p>
性别:<select name="sex" size="1">
<option value="先生">先生</option>
<option value="女士">女士</option>
</select><p>
<input type="submit" value="登陆" name="B1">
<input type="reset" value="重置" name="B2">
</form>
<%=Request("a")%>
<%else%>
<%
B1=Request("B1")
if Bi="发送"Then
if Request("name")="" or Request("pass")="" Then
a="名字和密码不能为空<br>"
Response.Redirect "chatadd1.asp?a="&a&" "
end if
set conn=Server.CreateObject("ADODB.Connection")
str="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=chat;Data Source=MMLI"
conn.open str
sql="Select * From 用户表 where name='"&Request("name")&"'"
set rs=conn.execute(sql)
if rs.Bof or rs.Eof Then
sz=""&Request("IP")&","&Request("name")&","&Request("sex")&","&Request("pass")&""
str1="insert inyo 用户表 values('&sz&')"
con.execute(str1)
else
if Request("pass")<>rs("pass") Then
a="用户名已占用,或者你输入的密码错误!<br>"
Response.Redirect "chatadd1.asp?a=" &a& ""
end if
end if

time=now
set conn=Server.CreateObject("ADODB.Connection")
str="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=chat;Data Source=MMLI"
conn.open str
sql="Select * From 在线用户表 Where name='"& Request("name")"'"
set rs=conn.execute(sql)
if rs.Bof or rs.Eof Then
sz=""&Request("name")&","&Request("sex")","&time&""
str1="Insert into 在线用户表 values('&sz&')"
conn.execute(str1)

name=Request("name")
sex=Request("sex")
gm="管理员宣布"
sz="<front color=#FF0000>""热烈欢迎"&name&sex&"的光临""</font>
str2="insert into 聊天表 values('"&ming&"','"&sz&"')
conn.execute(str2)
end if
end if
%>

<%addr=Request("REMOTE_ADDR")%>
<form method="post" name="form2" action="chatadd1.asp">
<input type="hidden" name="IP" value="<%=addr%>"<p>
<input type="hidden" name="name" vale="<%=Request("name")"%>"><p>
<input type="text" name="word" size="70">
<input type="submit" value="发言" name="B3">
<input type="reset" value="清空" name="B4">

<%
set conn=Server.CreateObject("ADODB.Connection")
str="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=chat;Data Source=MMLI"
conn.open str
sql="Select * From 在线用户表"
set rs=conn.execute(sql)
%>

对象:<select name="D2" size="1">
<option value="大家">大家</option>
<%
Do While not rs.Eof
if rs("name")=Request("D2") then
s="selected"
else
s=""
end if
%>
<option <%=s%> value="<%=rs("name")%>"><%=rs("name")%></option>
rs.moveNext
loop
%>
<input type="submit" value="离开聊天室" name="B5">
<a href="admin.asp">管理员入口</a>
</form>
<%
B3=Request("B3")
if B3="发言" Then
set conn=Server.CreateObject("ADODB.Connection")
str="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=chat;Data Source=MMLI"
conn.open str
%>
<%
sz=""&Request("IP")&","&Request("name")&","&Request("D2")&","&Request("word")&""
str1="insert into 聊天表 values('"&sz&"')"
conn.execute(str1)
con.close
end if

B5=Request("b5")
if B5="离开聊天室" Then
set conn=Server.CreateObject("ADODB.Connection")
str="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=chat;Data Source=MMLI"
conn.open str
sql3="Delete From 在线用户表 Where name='"&Request("name")"'
conn.execute(str3)
name1=Request("name")
sex1=Request("sex")
gm1="管理员宣布"
sz1="<font size=5 color=#FF0000>"&name1&sex1&"有事先走了,欢迎再来"
str2="inser into 聊天表 values('"&ming1&",'"&sz1&"')"
conn.execute(str2)
conn.close
Response.Redirect "chat.asp"
end if
end if
%>

在客户端用浏览器打开时,可以见到了平常聊天室一样的用户登陆界面。输入用户名及密码,按登陆时,应该是我们所输入的资料便会暗中存入用户数据库中。可是提示错误:

  • 错误类型:
    Microsoft OLE DB Provider for SQL Server (0x80040E4D)
    用户 'MMLI\IUSR_MMLI' 登录失败。
    /chatadd1.asp, 第 72 行

  • 浏览器类型:
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
  • %%%%%%%%%请问代码错在那里了?帮忙指出!!!3Q!

    最佳答案

    大概看了一下你的代码,问题太多了.


    conn有必要定义那么多次吗?定义一次就够了.


    str也是一样的.


    另外就是你的str内容


    连接sql没有必要用oledb,直接用sql server的驱动就行了.


    换成这样试试


    "Driver={SQL Server};server=(local);uid=sa;pwd=11111;database=infs;"


    sa是SQL账号


    11111是SQL登录密码.


    infs是库名


    你替换成你自己的

    全部回答

    补充一下

    SQL的操作建议使用参数方式.

    用拼接字符串的方式,

    存在着SQL注入的安全问题.

    请尝试执行下列操作: 单击刷新按钮,或稍后重试。 打开 113.113.130.64 主页,然后查找与所需信息相关的链接。 HTTP 错误 500.100 - 内部服务器错误 - ASP 错误 Internet 信息服务 -------------------------------------------------------------------------------- 技术信息(用于支持人员) 错误类型: Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [MySQL][ODBC 3.51 Driver]Access denied for user: 'root@WWW-6AEFF6DBEFF' (Using password: YES) /images/conn.asp, 第 11 行 浏览器类型: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) 网页: GET /reg.asp

    Microsoft OLE DB Provider for SQL Server (0x80040E4D) 用户 'MMLI\IUSR_MMLI' 登录失败。

    错误提示写清楚了,是你的数据库的用户问题。

    在你的SQL中有没有MMLI这个数据库

    str="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=chat;Data Source=MMLI"

    写错没啊

    我用的是Persist Security Info=True不知道可以不

    个人觉得是驱动问题,或者是连接串写错了,可是试着换个ODBC,或者换个数据库试试~~
    我要举报
    如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
    大家都在看
    整天没有精神是怎么会事
    谁知道世界上第一杯咖啡是从哪里流出的???
    我买了包红烧牛肉方便面,里面真的有牛肉啊!
    问道里怎样炼制金色装备
    驿城区驻马店现代拉丁舞学校(乐山大道)我想知
    怎样才能让身边的伙伴觉得自己不可或缺呢?
    乾隆通宝以和阗背面满文是什么样子?
    梦幻西游30级到54级要多少经验
    问个字,古董上写的
    如图,三角形ABC中,角C=30度,三角形ABC外接...
    义马市三门峡唯纳馨旅馆在什么地方啊,我要过
    刘若英今年多大?多少岁?
    新版中日交流标准日本语初级上/下册有配套的
    Are you ___ with your classmate?A.fine B.w
    怎么能体现信用卡业的专业性?
    推荐资讯
    天剑记单机怎么作弊
    仙剑奇侠传3装了怎么不能玩
    为什么QQ农场这个游戏越来越垃圾啦!
    工商银行卡号什么意思,工商银行开户行行号怎
    チョコレー以及えんまあい♀是什么意思?
    知道短号 能查到号码吗?
    时间、可以忘记一个人或一切吗
    反义词大全随机------( )
    河南那里有野猪仔
    除了上大学还有别的出路吗?
    您好,有关云南电网公司的求助!
    诛仙做元宵节火锅的配料在那弄,
    正方形一边上任一点到这个正方形两条对角线的
    阴历怎么看 ?