求助啊!关于asp在线留言提交的问题???

shandian84 2008-01-24 03:43:39
我有一个在线留言在本地机子上运行,提交数据都是正常的.
上传到服务器上后,发表留言时,出现以下错误:

Microsoft JET Database Engine 错误 '80040e09'

不能更新。数据库或对象为只读。

/LIUYAN/book_write.asp,行 42


我不知道哪里出了问题??
我的数据库连接代码:

<%
Dim database,conn,connstr
Response.Buffer=True
database = "notes.mdb"
Set conn=server.createobject("ADODB.Connection")
connstr="provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(database)
conn.Open connstr

Set WBrs = Server.CreateObject("ADODB.RecordSet")
WBrs.Open "Select * from web",conn,1,3
sitename = WBrs("SiteName")
maxlength = WBrs("MaxLength")
mail = WBrs("Mail")
distance = WBrs("Distance")
counts = WBrs("Counts")
subjectmaxlength = WBrs("SubjectMaxLength")
WBrs.Close
Set WBrs = nothing
%>


连接文件和数据库在同一文件夹下.
我觉的数据库路径应该是正确的.
有谁知道,请帮帮忙!!!
...全文
178 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
shandian84 2008-01-26
  • 打赏
  • 举报
回复
还是提示只读问题.我想也是服务器的问题.
在此,感谢各位的帮助!特别是几位大大不厌其烦的纠正我代码中的错误!!
正因为大家这么热心,才使我们这些新人能不断的进步!
再次感谢大家啊!!!
shandian84 2008-01-25
  • 打赏
  • 举报
回复
你看看数据库文件和所在目录的属性 是可读和可写入的。

我把代码贴出来,谁帮我看看是不是有错阿??
连接数据库的asp文件conn.asp 代码如下:
<%
Dim database,conn,connstr
Response.Buffer=True
database = "notes.mdb"
Set conn=server.createobject("ADODB.Connection")
connstr="provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(database)
conn.Open connstr

Set WBrs = Server.CreateObject("ADODB.RecordSet")
WBrs.Open "Select * from web",conn,1,3
sitename = WBrs("SiteName")
maxlength = WBrs("MaxLength")
mail = WBrs("Mail")
distance = WBrs("Distance")
counts = WBrs("Counts")
subjectmaxlength = WBrs("SubjectMaxLength")
WBrs.Close
Set WBrs = nothing
%>


发表留言的sp页面book_write.asp 代码如下:
<!--#include file="conn.asp"-->
<%
if request("send")="ok" then '用户提交留言

username=trim(request.form("username")) '读取表单传递过来的姓名数据,Trim函数去掉字符串的前导和后续空格
usermail=trim(request.form("usermail")) '读取表单传递过来的用户邮箱数据
'用户姓名或留言主题或留言内容没有填写
if username="" or request.form("Comments")="" or request.form("subject") = "" then
'给出提示,并返回到前一页
response.write "<script>alert('填写资料不完整,请检查后重新输入!');history.back();</script>"
response.end
end if
if mailyes=0 then '邮箱为必填时检查邮箱是否合法
'填写的邮箱地址中不存在字符"."或"@",或者邮箱长度小于10 或大于50都是非法邮箱地址
if Instr(usermail,".")<=0 or Instr(usermail,"@")<=0 or len(usermail)<10 or len(usermail)>50 then
'给出提示并返回到前一页
response.write "<script>alert('您输入的电子邮件地址格式不正确,请检查后重新输入!');history.back();</script>"
response.end
end if

end if
'留言主题长度大于要求的长度
if len(request.form("subject"))>subjectmaxlength then
'给出提示并返回到前一页
response.write "<script>alert('留言主题太长了,请不要超过"&subjectmaxlength&"个字符!');history.back();</script>"
response.end
end if

'留言内容长度大于要求的长度
if len(request.form("Comments"))>maxlength then
'给出提示并返回到前一页
response.write "<script>alert('留言内容太长了,请不要超过"&maxlength&"个字符!');history.back();</script>"
response.end
end if

set rs=Server.CreateObject("ADODB.RecordSet") '将留言保存到数据库中

sql="select * from note_comment" '从数据库中查询留言记录

rs.open sql,conn,1,3 '执行查询操作,并将结果保存在rs 中

rs.Addnew '添加一条记录
rs("Name")=Request.Form("username") '姓名
rs("Comment")=Request.Form("comments") '留言内容
rs("Email")=Request.Form("usermail") '邮箱地址
rs("url")=Request.Form("url") '主页
rs("Communication")=Request.Form("communication") '其他联系方式
rs("IP")=Request.serverVariables("REMOTE_ADDR") 'IP 地址
rs("PostDate") = now() '留言提交时间
rs("Subject") = Request.Form("subject") '留言主题
rs.Update '更新数据库
rs.close '关闭RecordSet 对象
set rs=nothing
'提交成功,给出提示,并返回到留言查看界面
response.write "<script>alert('留言提交成功,单击“确定”返回留言列表!');location.href='index.asp';</script>"
response.end
end if
%>



<HTML><HEAD>
<TITLE><%=sitename%></TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="description" content="<%=sitename%>">
<meta name="keywords" content="<%=sitename%>">
<link rel="stylesheet" href="book.css" type="text/css">
<style type="text/css">
<!--
body {
margin-top: 100px;
}
-->
</style></HEAD>

<body background-color: #990000 leftmargin="0">
<table width="760" border=0 cellspacing=0 cellpadding=0 bgcolor="#FFFFFF" align=center>
<tr><td align="center" bgcolor="#990000"><img src="../image/gybz1.gif" width="350" height="70"></td>
</tr>
</table>
<center>

<table width="760" border=0 cellspacing=0 cellpadding=0 align=center bgcolor="#FFFFFF" class="grayline">
<tr><td align=center height=50>
<img border=0 src=images/write.gif>      <a href=index.asp><img border=0 src=images/read.gif title="我要看留言"></a>
</td></tr>

<tr><td>
<form action=book_write.asp method=post name="book">
<table cellSpacing="1" borderColorDark="#ffffff" cellPadding="4" width="715" align="center" bgColor="#000000" borderColorLight="#000000" border="0">
<tr bgColor="#ebebeb">
<td width="13%" align=right>您的姓名:</td>
<td width="69%" ><input type=text name="UserName" size="30" maxlength=16>
<font color="#FF0000">*必须填写</font></td>
</tr>
<tr bgColor="#ebebeb">
<td width="13%" align=right>留言主题:</td>
<td ><input type=text name="subject" size="30" maxlength=50>
<font color="#FF0000">*必须填写(<%=subjectmaxlength%>字以内)</font></td>
</tr>
<tr bgColor="#ebebeb">
<td width="13%" align=right>您的邮箱:</td>
<td ><input type=text name="UserMail" size="30" maxlength=50>
<font color="#FF0000">*必须填写</font><%if mail=0 then%><%end if%></td>
</tr>
<tr bgColor="#ebebeb">
<td width="13%" align=right>您的网站:</td>
<td><input type=text value="http://" name="url" size="30" maxlength=100></td>
</tr>
<tr bgColor="#ebebeb">
<td width="13%" align=right>其它联系方式:</td>
<td><input type=text value="" name="communication" size="30" maxlength=100> (如QQ、MSN等)</td>
</tr>
<tr bgColor="#ebebeb">
<td width="13%" align=right>留言内容:<br><font color=red>(<%=maxlength%>字以内)</font></td>
<td><textarea name="Comments" rows="7" cols="66" style="overflow:auto;"></textarea></td>
<tr bgColor="#ebebeb">
<td colSpan="2"><input type="submit" value="提交留言" name="Submit">
<input type="reset" value="重新填写" name="Submit2"><input type=hidden name=send value=ok></td>
</tr>
</table>
</form>

</table>

<table width="760" border=0 cellspacing=0 cellpadding=0 bgcolor="#FFFFFF" align=center>
<tr><td> </td></tr>
<tr><td width=30 height=37 background="IMAGES/down.gif"><a href=#top><img src=images/up.gif border=0></a></td>
<td height=37 background="IMAGES/down.gif">  Copyright © 2008 版权所有</td>
<td width=30 height=37 background="IMAGES/down.gif"><a href=admin_login.asp title="管理留言本"><img src=images/admin.gif border=0></a></td>
</tr>
</table>

</center>
</body>
</html>


<%
conn.CLose
Set conn = nothing
%>
linfeising1 2008-01-25
  • 打赏
  • 举报
回复
sitename = WBrs("SiteName")
maxlength = WBrs("MaxLength")
mail = WBrs("Mail")
distance = WBrs("Distance")
counts = WBrs("Counts")
subjectmaxlength = WBrs("SubjectMaxLength")
這樣反過來才對吧
linfeising1 2008-01-25
  • 打赏
  • 举报
回复

WBrs.Close
Set WBrs = nothing
改成
wbrs.update
WBrs.Close
Set WBrs = nothing
MikeCheers 2008-01-25
  • 打赏
  • 举报
回复
你看看数据库文件 和 所在目录的属性 是不是只读
dong127 2008-01-25
  • 打赏
  • 举报
回复
嗯,权限的可能比较大
shandian84 2008-01-25
  • 打赏
  • 举报
回复
都不行啊。难道真的是权限的缘故吗?
草原可可 2008-01-25
  • 打赏
  • 举报
回复
你的文件是只读 改下文件权限
  • 打赏
  • 举报
回复
如果还是提示只读问题!那么就是服务器的问题了!!我已经测试通过了
  • 打赏
  • 举报
回复
这样就对了嘛!
我看了下,大概有2个地方错误,红色代表是我改的
<%
Dim database,conn,connstr
'Response.Buffer=True
database = "notes.mdb"
Set conn=server.createobject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(database)
'connstr="provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(database) 你这个这里有错,错误提示:找不到可安装的 ISAM
conn.Open connstr

Set WBrs = Server.CreateObject("ADODB.RecordSet")
WBrs.Open "Select * from web",conn,1,3
sitename = WBrs("SiteName")
maxlength = WBrs("MaxLength")
mail = WBrs("Mail")
distance = WBrs("Distance")
counts = WBrs("Counts")
subjectmaxlength = WBrs("SubjectMaxLength")
WBrs.Close
Set WBrs = nothing
%>

发表留言的sp页面book_write.asp 代码如下:

<%
if request("send")="ok" then '用户提交留言

username=trim(request.form("username")) '读取表单传递过来的姓名数据,Trim函数去掉字符串的前导和后续空格
usermail=trim(request.form("usermail")) '读取表单传递过来的用户邮箱数据
'用户姓名或留言主题或留言内容没有填写
if username="" or request.form("Comments")="" or request.form("subject") = "" then
'给出提示,并返回到前一页
response.write " <script> alert('填写资料不完整,请检查后重新输入!');history.back(); </script> "
response.end
end if
if mailyes=0 then '邮箱为必填时检查邮箱是否合法
'填写的邮箱地址中不存在字符"."或"@",或者邮箱长度小于10 或大于50都是非法邮箱地址
if Instr(usermail,".") <=0 or Instr(usermail,"@") <=0 or len(usermail) <10 or len(usermail)> 50 then
'给出提示并返回到前一页
response.write " <script> alert('您输入的电子邮件地址格式不正确,请检查后重新输入!');history.back(); </script> "
response.end
end if

end if
'留言主题长度大于要求的长度
if len(request.form("subject"))> subjectmaxlength then
'给出提示并返回到前一页
response.write " <script> alert('留言主题太长了,请不要超过"&subjectmaxlength&"个字符!');history.back(); </script> "
response.end
end if

'留言内容长度大于要求的长度
if len(request.form("Comments"))> maxlength then
'给出提示并返回到前一页
response.write " <script> alert('留言内容太长了,请不要超过"&maxlength&"个字符!');history.back(); </script> "
response.end
end if

set rs=Server.CreateObject("ADODB.RecordSet") '将留言保存到数据库中

sql="select * from note_comment" '从数据库中查询留言记录

rs.open sql,conn,1,3 '执行查询操作,并将结果保存在rs 中

rs.Addnew '添加一条记录
rs("Name")=Request.Form("username") '姓名
rs("Comment")=Request.Form("comments") '留言内容
rs("Email")=Request.Form("usermail") '邮箱地址
rs("url")=Request.Form("url") '主页
rs("Communication")=Request.Form("communication") '其他联系方式
rs("IP")=Request.serverVariables("REMOTE_ADDR") 'IP 地址
rs("PostDate") = now() '留言提交时间
rs("Subject") = Request.Form("subject") '留言主题
rs.Update '更新数据库
rs.close '关闭RecordSet 对象
set rs=nothing
'提交成功,给出提示,并返回到留言查看界面
response.write " <script> alert('留言提交成功,单击“确定”返回留言列表!');location.href='index.asp'; </script> "
response.end
end if
%>


<HTML> <HEAD>
<TITLE> <%=sitename%> </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="description" content=" <%=sitename%> ">
<meta name="keywords" content=" <%=sitename%> ">
<link rel="stylesheet" href="book.css" type="text/css">
<style type="text/css">
<!--
body {
margin-top: 100px;
}
-->
</style> </HEAD>

<body background-color: #990000 leftmargin="0">
<table width="760" border=0 cellspacing=0 cellpadding=0 bgcolor="#FFFFFF" align=center>
<tr> <td align="center" bgcolor="#990000"> <img src="../image/gybz1.gif" width="350" height="70"> </td>
</tr>
</table>
<center>

<table width="760" border=0 cellspacing=0 cellpadding=0 align=center bgcolor="#FFFFFF" class="grayline">
<tr> <td align=center height=50>
<img border=0 src=images/write.gif>      <a href=index.asp> <img border=0 src=images/read.gif title="我要看留言"> </a>
</td> </tr>

<tr> <td>
<form action=book_write.asp method=post name="book">
<table cellSpacing="1" borderColorDark="#ffffff" cellPadding="4" width="715" align="center" bgColor="#000000" borderColorLight="#000000" border="0">
<tr bgColor="#ebebeb">
<td width="13%" align=right> 您的姓名: </td>
<td width="69%" > <input type=text name="UserName" size="30" maxlength=16>
<font color="#FF0000"> *必须填写 </font> </td>
</tr>
<tr bgColor="#ebebeb">
<td width="13%" align=right> 留言主题: </td>
<td > <input type=text name="subject" size="30" maxlength=50>
<font color="#FF0000"> *必须填写( <%=subjectmaxlength%> 字以内) </font> </td>
</tr>
<tr bgColor="#ebebeb">
<td width="13%" align=right> 您的邮箱: </td>
<td > <input type=text name="UserMail" size="30" maxlength=50>
<font color="#FF0000"> *必须填写 </font> <%if mail="" then%><%'if mail=0 then你这个mail=0是什么意思,难道你邮箱页用数字型?%> <%end if%> </td>
</tr>
<tr bgColor="#ebebeb">
<td width="13%" align=right> 您的网站: </td>
<td> <input type=text value="http://" name="url" size="30" maxlength=100> </td>
</tr>
<tr bgColor="#ebebeb">
<td width="13%" align=right> 其它联系方式: </td>
<td> <input type=text value="" name="communication" size="30" maxlength=100> (如QQ、MSN等) </td>
</tr>
<tr bgColor="#ebebeb">
<td width="13%" align=right> 留言内容: <br> <font color=red> ( <%=maxlength%> 字以内) </font> </td>
<td> <textarea name="Comments" rows="7" cols="66" style="overflow:auto;"> </textarea> </td>
<tr bgColor="#ebebeb">
<td colSpan="2"> <input type="submit" value="提交留言" name="Submit">
<input type="reset" value="重新填写" name="Submit2"> <input type=hidden name=send value=ok> </td>
</tr>
</table>
</form>

</table>

<table width="760" border=0 cellspacing=0 cellpadding=0 bgcolor="#FFFFFF" align=center>
<tr> <td>   </td> </tr>
<tr> <td width=30 height=37 background="IMAGES/down.gif"> <a href=#top> <img src=images/up.gif border=0> </a> </td>
<td height=37 background="IMAGES/down.gif">   Copyright © 2008 版权所有 </td>
<td width=30 height=37 background="IMAGES/down.gif"> <a href=admin_login.asp title="管理留言本"> <img src=images/admin.gif border=0> </a> </td>
</tr>
</table>

</center>
</body>
</html>


<%
conn.CLose
Set conn = nothing
%>

改完以上2处便正常添加数据!我已经测试通过了
  • 打赏
  • 举报
回复
呵呵,还是按看看服务起的权限吧!
还有我看你的程序那个哪是提交数据啊?你那个就算是一个查询数据还有点错误!
suano 2008-01-24
  • 打赏
  • 举报
回复
和程序没关系,你的服务器没给你开权限,需要写入权限
什么都不能 2008-01-24
  • 打赏
  • 举报
回复
我有一个在线留言在本地机子上运行,提交数据都是正常的.
这句话让人纳闷。
jeffery188604253 2008-01-24
  • 打赏
  • 举报
回复
sitename = WBrs("SiteName")
maxlength = WBrs("MaxLength")
mail = WBrs("Mail")
distance = WBrs("Distance")
counts = WBrs("Counts")
subjectmaxlength = WBrs("SubjectMaxLength")

把等号两边的内容互换。。。
yalan 2008-01-24
  • 打赏
  • 举报
回复
错了,更新数据你写错了
应该是:


WBrs("SiteName") = sitename
......


以下相同,你把字段的顺序改过来应该就可以了
php_wsd 2008-01-24
  • 打赏
  • 举报
回复
WBrs.Open "Select * from web",conn,1,3
改成
WBrs.Open "Select * from [web]",conn,1,3
这样试试
yalan 2008-01-24
  • 打赏
  • 举报
回复
少写了东西了
给你补充一下代码:

<%
Dim database,conn,connstr
Response.Buffer=True
database = "notes.mdb"
Set conn=server.createobject("ADODB.Connection")
connstr="provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(database)
conn.Open connstr

Set WBrs = Server.CreateObject("ADODB.RecordSet")
WBrs.Open "Select * from web",conn,1,3
WBrs.addnew
sitename = WBrs("SiteName")
maxlength = WBrs("MaxLength")
mail = WBrs("Mail")
distance = WBrs("Distance")
counts = WBrs("Counts")
subjectmaxlength = WBrs("SubjectMaxLength")
WBrs.update
WBrs.Close
Set WBrs = nothing
%>
什么都不能 2008-01-24
  • 打赏
  • 举报
回复
和代码没有关系,目录或者文件的权限问题。

28,404

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧