如果admin_cptj.asp(产品添加)不加有错误继续执行代码("on error resume next")就会报(如下图)错误,

只有本站会员才能查看附件,请 登录
以下是三个页面具体代码:
admin_cptj.asp(产品添加)

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!-- #include file="../config/db.asp"-->
<!-- #include file="../config/function.inc.asp"-->
<%
on error resume next
set rst=server.CreateObject("adodb.recordset")
set fs=server.CreateObject("scripting.filesystemobject")
%>
<!-- #include file="../config/formdata.inc.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.>
<html xmlns="http://www.>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>留言显示</title>
</head>
<body>
<%
if session("acc")=false then
msgboxU"未登录或非法操作! 请重新登录"
response.write("<meta http-equiv='Refresh' content='0.2;URL=admin_dl.asp' /> ")
else
dim sql,sql1,rst,page,pagelistnum,myErrors,errstr,addselectwords
if request.QueryString("act")="add" then
if trim(formdata.item("f_title"))="" or trim(formdata.item("f_image"))="" or trim(formdata.item("f_content"))="" then
msgboxU"录入信息不全,请填写完整!"
else
sql="tbl_goods"
rst.open sql,conn,1,3
rst.addnew
rst("gds_name")=formdata.item("f_title")
rst("gds_img")=formdata.item("f_image")
rst("gds_info")=formdata.item("f_content")
rst.update
rst.close
set MyErrors=conn.errors
if MyErrors.count=0 then
msgboxU "添加产品成功!"
else
msgboxU "添加产品失败! 原因" &myErrors.item(0).description
'删除已经上传的文件
fs.deletefile server.MapPath("../upfile") & "\" & formdata.item("image")
end if
end if
end if
end if
'处理添加新闻
%>
<div>
<table width="865" border="0">
<tr>
<td height="29" colspan="4" align="center" bgcolor="#0066CC">后台管理系统</td>
</tr>
<tr>
<td width="198" height="30" align="center" bgcolor="#0099CC"><table >
<tr>
<td><a href="admin_index.asp?act=liuyan">留言管理</a></td>
</tr>
</table></td>
<td width="197" height="30" align="center" bgcolor="#0099CC"><table >
<tr>
<td><a href="admin_index.asp?act=news">新闻管理</a></td>
</tr>
</table></td>
<td width="197" align="center" bgcolor="#0099CC"><table >
<tr>
<td><a href="admin_index.asp?act=chanping">产品管理</a></td>
</tr>
</table></td>
<td width="255" align="center" bgcolor="#0099CC"><table >
<tr>
<td><a href="admin_index.asp?act=anything">其它管理</a></td>
</tr>
</table></td>
</tr>
<tr>
<td height="572" colspan="4" valign="top">
<table width="824" height="393" border="1">
<form action="admin_cptj.asp?act=add" method="post" enctype="multipart/form-data" name="form1" id="form1">
<tr>
<td width="182" height="38" bordercolor="#666666" bgcolor="#0099CC">产品标题</td>
<td width="626" height="38" bordercolor="#666666"><input name="f_title" type="text" size="30" /> </td>
</tr>
<tr>
<td height="38" bordercolor="#666666" bgcolor="#0099CC">产品图片</td>
<td height="38" bordercolor="#666666"><input type="file" name="f_image" /></td>
</tr>
<tr>
<td height="265" bordercolor="#666666" bgcolor="#0099CC">产品描述</td>
<td height="265" bordercolor="#666666"><textarea name="f_content" cols="80" rows="20"></textarea></td>
</tr>
<tr>
<td height="40" bordercolor="#666666"> </td>
<td height="40" bordercolor="#666666"><input type="submit" name="Submit" value="添加" />
<input type="reset" name="Submit2" value="取消" /></td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</div>
</body>
</html>
formdata.inc.asp(获取字段值)

<!-- #include file="../config/function.inc.asp"-->
<%
dim data,datalength,fstart,fend,tstart,tend,tinfo,flag,flaglen,tformname,tfile,tfilename,tfilepath,tfileext,sfilename,formdata,updata,tmpdata,tcrlf
set formdata=server.CreateObject("scripting.dictionary")
set updata=server.CreateObject("adodb.stream")
set tmpdata=server.CreateObject("adodb.stream")
updata.type=1 '设置对象的数据类型为二进制数据
updata.mode=3 '设置对象的打开模式为读写模式
updata.open '打开对象
updata.write request.BinaryRead(request.TotalBytes)
updata.position=0
data=updata.read
datalength=updata.size
tcrlf=chrb(13) & chrb(10) '回车符号代码
flag=leftb(data,instrb(data,tcrlf)-1) '获取每个表单项目数据之间分隔符
fstart=lenb(flag)+2 '搜索开始位置 加2是因为分隔符后有一个回车符号占两个字节
flaglen=fstart '分隔符长度,包含了后面的回车符
'循环处理表单元素
do
'分离出表单元素信息 即从开始查找位置到有两个回车符之间的信息
fend=instrb(fstart,data,tcrlf&tcrlf)+3
'初始化临时STREAM对象
tmpdata.type=1
tmpdata.mode=3
tmpdata.open
'设置指针位置
updata.position=fstart
updata.copyto tmpdata,fend-fstart '将元素表单信息复制到临时STREAM对象
fstart=instrb(fend,data,flag)-1 '查找下一个分隔符所在位置
'fstart=instrb(fend,data,flag)
tmpdata.position=0
tmpdata.type=2 '设置读取方式为文本
tmpdata.charset="gb2312" '设置编码方式为GB2312
tinfo=tmpdata.readtext
'取得表单元素的名称
tstart=instr(22,tinfo,"name=""")+6
tend=instr(tstart,tinfo,"""",1)
tformname=mid(tinfo,tstart,tend-tstart)
'获得表单元素的值
if instr(tstart,tinfo,"filename=""",1)>0 then '如果是文件
tmpdata.close
tmpdata.type=1
tmpdata.mode=3
tmpdata.open
'取得文件属性
tstart=instr(tend,tinfo,"filename=""",1)+10
tend=instr(tstart,tinfo,"""",1)
tfile=mid(tinfo,tstart,tend-tstart) '得到文件全路径
if tfile<>"" then
tfilename=mid(tfile,instrrev(tfile,"\")+1) '得到文件名
tfilepath=left(tfile,instrrev(tfile,"\")) '得到文件路径
tfileext=mid(tfile,instrrev(tfile,".")+1) '得到文件后缀
sfilename=GetRndFileName(tfileext)
' response.Write tfilename & "<br>" & tfilepath & "<br>" & tfileext
' 得到文件数据
updata.position=fend
updata.copyto tmpdata,fstart-2-fend
tmpdata.savetofile server.MapPath("../upfile") & "\" & sfilename,2
formdata.add tformname,sfilename
end if
else
'如果是表单元素
tmpdata.close
tmpdata.type=1
tmpdata.mode=3
tmpdata.open
updata.position=fend '设置指针指向数据区域开始位置
updata.copyto tmpdata,fstart-fend-2
'复制数据到临时STREAM对象;复制长度为一下分隔符开始位置减-2,-2是因为要减掉最后的回车符长度
tmpdata.position=0
tmpdata.type=2
tmpdata.charset="gb2312"
formdata.add tformname,tmpdata.readtext
end if
fstart=fstart+flaglen
'得到下次搜索开始位置:分隔符开始位置加上分隔符长度得到下次搜索开始位置
tmpdata.close
loop while (fstart+2)<datalength '如果还没有到结果 因为结束标志--两个字节,所以这里要加上2后再判断
set tmpdata=nothing
updata.close
set updata=nothing
%>
function.inc.asp(函数调取)

<%
'在客户端弹出提示消息
sub msgboxU(str)
response.write("<script language=vbscript>msgbox " &chr(34)&str&chr(34)&"</script>")
end sub
'截断字符串函数
function cutstr(str,length,addstr)
if len(str)<=length then
cutstr=str
else
cutstr=left(str,length)&addstr
end if
end function
'翻页函数
function fy(sql,page,pagelistnum,link)
dim rs,znum,zpage
page=cint(page)'将page转换成整数型
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
znum=rs("num")
'得到总页数
zpage=znum\pagelistnum
if znum mod pagelistnum>0 then zpage=zpage+1
response.write"共"& zpage&"页,第"& page &"页"
'得到第一页/上一页链接
if page=1 then
response.write "第一页,上一页"
else
response.write "<a href="& link &"&page=1>第一页</a><a href="& link & "&page=" & (page-1) &">上一页</a>"
'得到上一页/最后页链接
end if
if page<zpage then
response.write "<a href="& link &"&page="& (page+1) &">下一页</a><a href="& link &"&page="& zpage &">最后页</a>"
else
response.Write "下一页 最后一页"
end if
rs.close
set rs=nothing
end function
'编写随机不重复文件名
function GetRndFileName(sExt)
dim sRnd
Randomize
sRnd=Int(900*Rnd)+100
GetRndFileName=year(now) & month(now) & day(now) & hour(now) & minute(now) & second(now) & sRnd & "." & sExt
end function
%>
'在客户端弹出提示消息
sub msgboxU(str)
response.write("<script language=vbscript>msgbox " &chr(34)&str&chr(34)&"</script>")
end sub
'截断字符串函数
function cutstr(str,length,addstr)
if len(str)<=length then
cutstr=str
else
cutstr=left(str,length)&addstr
end if
end function
'翻页函数
function fy(sql,page,pagelistnum,link)
dim rs,znum,zpage
page=cint(page)'将page转换成整数型
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
znum=rs("num")
'得到总页数
zpage=znum\pagelistnum
if znum mod pagelistnum>0 then zpage=zpage+1
response.write"共"& zpage&"页,第"& page &"页"
'得到第一页/上一页链接
if page=1 then
response.write "第一页,上一页"
else
response.write "<a href="& link &"&page=1>第一页</a><a href="& link & "&page=" & (page-1) &">上一页</a>"
'得到上一页/最后页链接
end if
if page<zpage then
response.write "<a href="& link &"&page="& (page+1) &">下一页</a><a href="& link &"&page="& zpage &">最后页</a>"
else
response.Write "下一页 最后一页"
end if
rs.close
set rs=nothing
end function
'编写随机不重复文件名
function GetRndFileName(sExt)
dim sRnd
Randomize
sRnd=Int(900*Rnd)+100
GetRndFileName=year(now) & month(now) & day(now) & hour(now) & minute(now) & second(now) & sRnd & "." & sExt
end function
%>
[ 本帖最后由 xfychina 于 2014-5-10 20:30 编辑 ]