以文本方式查看主题 - 康柏仕电脑学院 (http://combss.com/bbs/index.asp) -- Dreamweaver网站设计交流区 (http://combss.com/bbs/list.asp?boardid=48) ---- [教程]自己一步一步写论坛《ASP》教程- -~[完结,有实例](转) (http://combss.com/bbs/dispbbs.asp?boardid=48&id=753) |
-- 作者:轻轻风聆 -- 发布时间:2007/8/24 9:07:32 -- 自己一步一步写论坛《ASP》教程- -~[完结,有实例](转) 注意: BUG还是有的,美化还没有,只要想提高ASP水平的人就可以来看下! 附件1里有#KEY.DB和#M.DB ,但是实际我把他们合并到一个DB里了,所以某些时候写的是#KEY.DB,有时候写M.DB, M.DB里的只要是贴表,MAIN,而KEY里是UDB用户表! XEDIT是拣的,能用就行~ 开发环境: Netbox + access + asp 一:准备工作 1.数据库:#key和#m,其实可以合在一起的- -~当时没想那么多就分了两个了! 见附件1里的DATA文件夹,需要OFFICE XP以上级别的 access 才能打开- -~ 2.ASP服务器,附件1里有个叫ASP.EXE,这个是NETBOX编写的ASP服务器。 释放附件1里的所有东西到一个位置。注意有IIS的,请自己配置在IIS下虚拟目录,如果用ASP服务器的话会造成端口冲突。 二:[用户管理] 1.登陆 新建网页文件:default.asp或index.htm 内容如下 <form method="post" action="do.asp"> 账号<input type="text" name="id" ><br> 密码<input type="password" name="pwd"><br> <input type="submit" value="提交完成"> <input type="reset" value="我要重写"> </form> 如果要连接到注册网页文件的话,自己用 <A HREF ="register.htm">我要注册</a> 来实现。 2.注册 新建网页文件:register.htm[请和上文红字部分相应] 内容如下 <form method="post" action="do.asp"> 用户名:<input type="text" name="id" maxlength=8 alt="最长8个字"><br> 密码 :<input type="password" name="pwd" maxlength=16 alt="最长16个字"><br> 头像地址:<input type="text" name="head"><br> 性别: <input type="radio" name="sex" value="1">男 <input type="radio" name="sex" value="2">女 <input type="radio" name="sex" value="0" checked>未知 <br> 当前位置:<input type="text" name="local"><br> 签名: <textarea rows="4" cols="40" name="sign"></textarea><br> <input type="submit" value="提交"> <input type="reset" value="重写"> </form> 3.登陆注册处理 [该部分有BUG,大家可以自己找出来,这样对往后我们继续学习做论坛有好处,其实很简单] 新建网页文件:do.asp[请和上文蓝字部分相应] <% session.timeout=5 '不动的话最多活5分钟,用于保持服务器性能 dbpath="data/#key.mdb"'数据库连接地址 Set conn=Server.CreateObject("adodb.connection") db="provider = Microsoft.Jet.OLEDB.4.0;Data Source ="&server.mappath(dbpath) conn.open db set rs=server.CreateObject("adodb.recordset") ’以上为连接数据库必用 '由注册[register.htm]和登陆页面[index.htm]接受来的数据 session("d")=request.form("id") session("P")=request.form("pwd") session("i")=Request.ServerVariables("REMOTE_ADDR") session("h")=request.form("head") session("x")=request.form("sex") session("l")=request.form("local") session("s")=request.form("sign") '重复ID查询 session("SQLpd") = "select uid,id,pwd from udb" '建立查询语句,关于表请自己看数据库,里面有备注 rs.open session("SQLpd"),conn,0,1 '打开并查询 rs.movefirst '移动到查询返回结果的第一行,查询结果包含在rs里面 session("Sqlt")=0 '设定默认值0,此为未注册模式 while not rs.eof '如果没到表尾就循环 if rs("id")=session("d") then session("Sqlt")=1 '假如查到ID的给值1,表示有该ID存在 if session("Sqlt")=1 and rs("pwd")=session("p") then '该ID对应的密码和登陆密码是否比较对应 session("Sqlt")=2 '对应为登陆成功 response.cookies("key")("uid")=rs(0),'把ID写入COOKIES,这里的rs(0)和rs("ID")是一样效果,因为0列名是"ID" end if end if rs.movenext '到一下条 wend rs.close '关闭 '结果如下: 'session("Sqlt") 为0则不注册 '2为已注册帐号并且密码正确 '1为已注册帐号但密码不正确 '0为未注册帐号 select case session("Sqlt") case 1 response.redirect "error.htm" '跳到出错提示页面 case 2 response.redirect "main.asp" '跳到主体页面 case 0 rs.open "udb",conn,2,3 '没注册就注册吧! rs.addnew rs(1).value=session("d") rs(2).value=session("p") rs(3).value=0 rs(4).value=session("h") rs(5).value=session("x") rs(6).value=date() rs(7).value=date() rs(8).value=session("i") rs(9).value=session("l") rs(10).value=session("s") rs(10).value=12 '以下为#key数据库中的udb表的列名 '0:UID,1:ID,2:PWD,3:LEVEL,4:HEAD,5:SEX;6:RDATE,7:LDATE,8:IP,9:LOCAL,10:SIGN,11:integral rs.update response.cookies("key")("uid")=rs(0) response.cookies("key")("id")=session("d") response.cookies("key")("pwd")=session("p") '顺便写入cookies rs.close response.redirect "main.asp" '跳到主体页面 end select session.abandon '强行释放 %> 4.出错页面error.htm <table align="center"> <tr><td> 您的操作出错.......</tr> <tr><td> 原因可能是以下几种:</tr> <tr><td> 登陆时发生:账号或密码有错误</tr> <tr><td> 注册时发生:账号已经被注册</tr> <tr><td> 9秒后跳转到列表........</tr> <tr><td>如果您的浏览器没有跳转,请点击这里<A href="index.htm">手动跳转</a></tr> </table> <script language=javascript> setTimeout("location.replace('\')",5000) </script> 5. 控制面版[只写了50%,既Read Only,修改部分参照注册会员那里]cp.asp <% codepage="936" dbpath="data/#key.mdb" Set conn=Server.CreateObject("adodb.connection") db="provider = Microsoft.Jet.OLEDB.4.0;Data Source ="&server.mappath(dbpath) conn.open db set rs=server.CreateObject("adodb.recordset") session("SQLpd") = "select uid,id,level,sex,rdate,ldate,local,sign,money from udb where id=1" 'request.cookies("key")("id") session("SQLpd") = "select * from udb" + " where uid =" + request.cookies("key")("uid") rs.open session("SQLpd"),conn,0,1 %> <% response.write rs("uid") response.write rs("id") response.write rs("level") response.write "<img src=" & rs("head") & ">" %> <% select case rs("sex") case 0 session("X") ="妖" case 1 session("X") ="男" case 2 session("X") ="女" end select response.write session("X") %> <% response.write rs("rdate") response.write rs("ldate") response.write rs("local") response.write rs("sign") response.write rs("money") %> <% session.abandon '强行释放 %> 修改部分: rs.open "SQL语句",conn,2,3 '没注册就注册吧! rs(1).value=session("d") rs(2).value=session("p") rs(3).value=0 rs(4).value=session("h") rs(5).value=session("x") rs(6).value=date() rs(7).value=date() rs(8).value=session("i") rs(9).value=session("l") rs(10).value=session("s") rs(10).value=12 '以下为#key数据库中的udb表的列名 '0:UID,1:ID,2:PWD,3:LEVEL,4:HEAD,5:SEX;6:RDATE,7:LDATE,8:IP,9:LOCAL,10:SIGN,11:integral rs.updatebatch '这句是更新数据库~ rs.close 好了,我们现在来写 主界面 三.主界面, 1.[main.asp] 代码: <% session.timeout=5 dbpath="data/#m.mdb" Set conn=Server.CreateObject("adodb.connection") db="provider = Microsoft.Jet.OLEDB.4.0;Data Source ="&server.mappath(dbpath) conn.open db set rs=server.CreateObject("adodb.recordset") '主区: session("SQLpd") = "select * from main where MListID=ListID and part=1 and YoN=1 ORDER BY ldatetime desc" '查询语句 rs.open session("SQLpd"),conn,0,1 '开始查询 response.write "<a href=view.asp?pr=1>主区</a>" &"<br>" & "<a href=view.asp?pr=1&ml=" & rs(0) & ">" & rs(3) & "</a>" &"<br>" '输出查询,以下雷同,因为我有3个区,分别是part = 1,2,3,既主区,水区,管理区 rs.close %> <br> <% '水区: session("SQLpd") = "select * from main where MListID=ListID and part=2 and YoN=1 ORDER BY ldatetime desc" rs.open session("SQLpd"),conn,0,1 response.write "<a href=view.asp?pr=2>水区</a>" &"<br>" & "<a href=view.asp?pr=2&ml=" & rs(0) & ">" & rs(3) & "</a>" &"<br>" rs.close %> <br> <% '管理区: session("SQLpd") = "select * from main where MListID=ListID and part=3 and YoN=1 ORDER BY ldatetime desc" rs.open session("SQLpd"),conn,0,1 response.write "<a href=view.asp?pr=3>管理区</a>" &"<br>" & "<a href=view.asp?pr=3&ml=" & rs(0) & ">" & rs(3) & "</a>" &"<br>" rs.close session.abandon '强行释放 %> 这个很简单吧,后面的也如此! 2.查看界面[view.asp] <% session.timeout=5 session("pr")=request.querystring("pr") '接受又MAIN来"区号"的数据 session("ml")=request.querystring("ml") '接受又MAIN来"楼号"的数据 dbpath="data/#m.mdb" Set conn=Server.CreateObject("adodb.connection") db="provider = Microsoft.Jet.OLEDB.4.0;Data Source ="&server.mappath(dbpath) conn.open db set rs=server.CreateObject("adodb.recordset") if session("ml") = empty then 'ML为空就显示主题,ML(MLISTID)是主贴的LISTID,如果不是顶楼的贴的话,MLISTID是不等于LISTID的. '主题列表 response.write "<a href=addedit.asp?ed=2&pr="& session("pr") &">添加新贴</a><br>" '注意session("pr") 表示区,新贴发在那个区 '->view.asp?pr=1&ed=2 session("SQLpd") = "select * from main where MListID=ListID and part="+ cstr(session("pr"))+" and YoN=1 ORDER BY ldatetime desc" '查询主题语句 rs.open session("SQLpd"),conn,0,1 rs.Movefirst '转到查询结果的第一行 while not rs.eof '不是尾就循环 response.write "<a href=view.asp?pr=" & session("pr") &"&ml=" & rs(0) & ">" & rs(3) & "</a>" &"<br>" &"UID:"& rs(6) &"<br>"& rs(9) &"<br>" &rs(4)&"<P>" '输出 'rs0=[listid],rs1=[mainid],rs2=[part],rs3=[main],rs4=[fdatetime],rs5=[ldatetime],rs6=[uid],rs7=[yy],rs8=[yon],rs9=[id] rs.movenext '转到下一行 wend rs.close else '如果ML不为空既代表指向某贴 '主题内容 session("SQLpd") = "select * from main where mListID=" & session("ml") & "and part=" &session("pr") & "and YoN=1 ORDER BY ListID" '查询主题语句 rs.open session("SQLpd"),conn,0,1 rs.movefirst '以下雷同 while not rs.eof session("X")=session("X")+1 response.write rs(3) & "<br>UID:"& rs(6) &"<br>"& rs(9) &"["& session("X") &"楼"&"#"&rs(0)& "#"&rs(1)&"#]<br>发帖时间" response.write rs(5)&"<br>"&"内容:" & rs(7) &"<br><right>"&"最后修改时间:"&rs(5) &"<br>" response.write "<a href =addedit.asp?pr=" & rs(2) & "&ed=1&ld="&rs(0) &">编辑"& "</a><p>" '->view.asp?pr=1&ed=1&ld=1 'view->?===>pr[分区],ml=[主贴ID], 'rs0=[listid],rs1=[mainid],rs2=[part],rs3=[main],rs4=[fdatetime],rs5=[ldatetime],rs6=[uid],rs7=[yy],rs8=[yon],rs9=[id] session("pr")=rs(2) session("ml")=rs(1) rs.movenext wend rs.close '以上雷同 response.write "<a href=addedit.asp?pr=" & session("pr") & "&ed=0&ml="& session("ml") &">新回复"& "</a><p>" '->view.asp?pr=1&ed=0&ml=1 %> '以下用于快速回复 <form method="post" action="edo.asp"> <div style="display:none"> <input type="radio" name="ed" value="3" checked> <!--回复,修改,新贴,快速回复的标志是 "ed",其分别为0,1,2,3--> <input type="radio" name="pr" value=<%=session("pr")%> checked> <input type="radio" name="ml" value=<%=session("ml")%> checked> <input type="radio" name="uid" value=<%=request.cookies("key")("uid")%> checked> <input type="radio" name="id" value=<%=request.cookies("key")("id")%> checked> </div> <textarea rows="3" cols=50 name="YY"></textarea> </textarea> <br> <input type="submit" value="快速回复"> </form> <% end if session.abandon '强行释放 %> 这样就完成了,接着我们来写 ADDEDIT.ASP 3.编辑界面: [addedit.asp] 首先这里我们要调用外部程序 XEDIT,它是一个[JS]编辑工具! 他的主要内容如下: <form method="post" action="edo.asp"> 标题:<input type="text" name="main" maxlength=49 size=50><br> <div id="YY"></div> <script type="text/javascript"> function init() { et = new word("YY","", 0); } if(window.Event) { window.onload = init; } else { init(); } </script> <input type="submit" value="提交" > </form> 以上代码提交EDO.ASP2个值,MAIN和YY,分别是标题和内容! 继续,我们现在写代码: <% session.timeout=5 session("uid")=request.cookies("key")("uid") session("id")=request.cookies("key")("id") session("pwd")=request.cookies("key")("pwd") session("ed")=0 session("ed")=request.querystring("ed")'是否是新回复 session("pr")=request.querystring("pr")'分区 session("ld")=request.querystring("ld")'主ID session("ml")=request.querystring("ml")'主题ID %> '以上收数据 <% '测试用,不写也可以的! response.write session("uid") &"--uid<br>" response.write session("id") &"-- id<br>" response.write session("pwd") &"--pwd<br>" response.write session("ed") &"-- ed<br>" response.write session("pr") &"-- pr<br>" response.write session("ld") &"-- ld<br>" response.write session("ml") &"-- ml<br>" %> <!--'新回复 --> <% if session("ed")=0 and session("pr")<>empty and session("ml")<>empty then %> <!-- '新回复需要的参数有:ed,pr,ml,必要参数有:uid,id,输出参数MAIN,YY,最后所有参数要提交给edo.asp 大家看想一下,回复只需要识辨操作[回复]ED=0,区的位置[PRAT]pr=?,以及主贴ID[MLISTID]ML就可以了 --> <form method="post" action="edo.asp"> 标题:<input type="text" name="main" maxlength=49 size=50><br> <div id="YY"></div> <script type="text/javascript"> function init() { et = new word("YY","", 0); } if(window.Event) { window.onload = init; } else { init(); } </script> <div style="display:none"> <input type="radio" name="ed" value="0" checked> <input type="radio" name="pr" value=<%=session("pr")%> checked> <input type="radio" name="ml" value=<%=session("ml")%> checked> <input type="radio" name="uid" value=<%=session("uid")%> checked> <input type="radio" name="id" value=<%=session("id")%> checked> <!-- 数据:ed=0,pr,ml,uid,id,main,YY --> </div> <input type="submit" value="提交" > </form> <% end if %> <!--'修改主题或回复--> <% if session("ed")=1 and session("pr")<>empty and session("ld")<>empty then dbpath="data/#key.mdb" Set conn=Server.CreateObject("adodb.connection") db="provider = Microsoft.Jet.OLEDB.4.0;Data Source ="&server.mappath(dbpath) conn.open db set rs=server.CreateObject("adodb.recordset") session("SQLpd") = "select * from main where part="+cstr(session("pr"))+" and listid="+cstr(session("ld")) '要把要修改的贴找出来 rs.open session("SQLpd"),conn,0,1 %> <!-- 修改主题或回复需要的参数有:ed,pr,ld,必要参数有:uid,id,输出参数MAIN,YY,最后所有参数要提交给edo.asp 大家看想一下,回复只需要识辨操作[回复]ED=0,区的位置[PRAT]pr=?,以及主贴ID[LISTID]LD就可以了,修改是针对某个贴的,所以是LISTID 如果是针对某一个主题的,请用ML[MLISTID] --> <form method="post" action="edo.asp"> 标题:<input type="text" name="main" maxlength=49 size=50 value=<%= rs(3) %> ><br> <div id="YY"></div> <script type="text/javascript"> function init() { et = new word('YY',<%= "'"+rs(7)+"'" %>, 0); } if(window.Event) { window.onload = init; } else { init(); } </script> <div style="display:none"> <input type="radio" name="ed" value="1" checked> <input type="radio" name="pr" value=<%=session("pr")%> checked> <input type="radio" name="ld" value=<%=session("ld")%> checked> <input type="radio" name="uid" value=<%=session("uid")%> checked> <input type="radio" name="id" value=<%=session("id")%> checked> <!-- 数据:ed=1,pr,ld,uid,id,main,YY --> </div> <input type="submit" value="提交" > </form> <% rs.close end if %> <!--添加新主题--> <% if session("ed")=2 and session("pr")<>empty then %> <form method="post" action="edo.asp"> <!-- 新主题需要的参数有:ed,pr,必要参数有:uid,id,输出参数MAIN,YY,最后所有参数要提交给edo.asp 大家看想一下,回复只需要识辨操作[回复]ED=0,区的位置[PRAT]pr=?就可以了 但是新主题和新回复有一个区别: 新主题必须是 只要 分区PR,并且要LISTID=MLISTID的!表示主题ID[MLISTID]为ID[LISTID]的子项!.[也可以说是自己的子项] 新回复必须 要有 分区PR和主题ID ML,而且是LISTID不等于MLISTID,他的MLISTID表示他是 ID[LISTID]的贴 的子项! --> 标题:<input type="text" name="main" maxlength=49 size=50 ><br> <div id="YY"></div> <script type="text/javascript"> function init() { et = new word("YY"," ", 0); } if(window.Event) { window.onload = init; } else { init(); } </script> <div style="display:none"> <input type="radio" name="ed" value="2" checked> <input type="radio" name="pr" value=<%=session("pr")%> checked> <input type="radio" name="uid" value=<%=session("uid")%> checked> <input type="radio" name="id" value=<%=session("id")%> checked> <!-- 数据:ed=2,pr,uid,id,main,YY --> </div> <input type="submit" value="提交" > </form> <% end if %> <% session.abandon %> 4.编辑处理界面 edo.asp 看了addedit.asp我们现在知道EDO.ASP应该怎么写了,按ED来分4个写! <% session.timeout=5 session("ed")=request.form("ed")'是否是新回复 session("pr")=request.form("pr")'分区 session("ld")=request.form("ld")'主ID session("ml")=request.form("ml")'主题ID session("YY")=request.form("yy")'内容 session("uid")=request.form("uid")'UID session("id")=request.form("id")'ID session("main")=request.form("main")'主题 session("pwd")=request.cookies("key")("pwd") 'response.write "YY:"&session("YY") &"main:"& session("main")&"ed:"& session("ed")'测试用 '以上接受数据,没问题 '用户检测 dbpath="data/#m.mdb" Set conn=Server.CreateObject("adodb.connection") db="provider = Microsoft.Jet.OLEDB.4.0;Data Source ="&server.mappath(dbpath) conn.open db set rs=server.CreateObject("adodb.recordset") session("SQLpd") = "select * from udb" rs.open session("SQLpd"),conn,0,1 rs.movefirst session("Sqlt")=1 '识别代码,为1表示未知 while not rs.eof '循环查询 if rs("id")=session("id") and rs("pwd")=session("pwd") then '是否有这个人,密码对不对 session("Sqlt")=2 '识别代码,为2表示有这人,密码对 session("id")=rs("id") if rs("level")=1 or rs("level")=2 then session("MM")=1 '用户管理级别是1[斑竹]/2[管理员]的,特别识别代码=1 end if rs.movenext wend rs.close response.write session("MM") %> <% if session("Sqlt")=1 then response.redirect "error.htm" %> <!--识别代码 SQLT=1的不允许执行代码--> <!--编辑 --> <% if session("Sqlt")=2 and session("ed")=1 and session("pr")<>empty and session("ld")<>empty then session("SQLpd") = "select * from main where listid=" + cstr(session("ld")) rs.open session("SQLpd"),conn,2,3 '查讯 if cstr(rs(6))=cstr(session("uid")) or session("MM")=1 then '只有发贴本人和有特别识别的人[斑竹/管理员]可以修改 rs(3).value=session("main") rs(5).value=date() rs(7).value=session("YY")+"<br><font color=#ff0000>"+"最后编辑于"+cstr(now)+"</font>" 'rs0=[listid],rs1=[mainid],rs2=[part],rs3=[main],rs4=[fdatetime],rs5=[ldatetime],rs6=[uid],rs7=[yy],rs8=[yon],rs9=[id] rs.updatebatch '更新 end if rs.close response.redirect "main.asp" end if %> <!--新回复 --> <% if session("Sqlt")=2 and session("ed")=0 and session("pr")<>empty and session("ml")<>empty then rs.open "main",conn,2,3 rs.addnew '新加回复 rs(1).value=session("ml") '要指定主题ID ML rs(2).value=session("pr") rs(3).value=session("main") rs(4).value=date() rs(5).value=date() rs(6).value=session("uid") rs(7).value=session("YY") rs(8).value=1 rs(9).value=session("id") 'rs0=[listid],rs1=[mainid],rs2=[part],rs3=[main],rs4=[fdatetime],rs5=[ldatetime],rs6=[uid],rs7=[yy],rs8=[yon],rs9=[id] rs.update '更新 rs.close response.redirect "main.asp" end if %> <!--新贴 --> <% if session("Sqlt")=2 and session("ed")=2 and session("pr")<>empty then session("mc") = session("ml")+"19861230"+session("uid") '这个为查询做识别 rs.open "main",conn,2,3 rs.addnew rs(1).value=session("mc") rs(2).value=session("pr") rs(3).value=session("main") rs(4).value=date() rs(5).value=date() rs(6).value=session("uid") rs(7).value=session("YY") rs(8).value=0 rs(9).value=session("id") 'rs0=[listid],rs1=[mainid],rs2=[part],rs3=[main],rs4=[fdatetime],rs5=[ldatetime],rs6=[uid],rs7=[yy],rs8=[yon],rs9=[id] rs.update rs.close '以上大部分和新回复相同 session("Sqlpd")="select * from main where mlistid="+ cstr(session("mc"))+"and yon=0" '查询ML=MC[紫字]贴 rs.open session("Sqlpd"),conn,2,3 rs(1).value=rs(0).value '把MLISTID 改和LISTID一样的!,因为LISTID是序列生成,我们不知道它实际多少,只能让他生成之后再说! rs(8).value=1 rs.updatebatch '完成 rs.close response.redirect "main.asp" end if %> <!--快速回复 --> <% if session("Sqlt")=2 and session("ed")=3 and session("pr")<>empty and session("ml")<>empty then rs.open "main",conn,2,3 rs.addnew rs(1).value=session("ml") rs(2).value=session("pr") rs(3).value=session("main") rs(4).value=date() rs(5).value=date() rs(6).value=session("uid") rs(7).value=session("YY") rs(8).value=1 rs(9).value=session("id") 'rs0=[listid],rs1=[mainid],rs2=[part],rs3=[main],rs4=[fdatetime],rs5=[ldatetime],rs6=[uid],rs7=[yy],rs8=[yon],rs9=[id] rs.update '和新回复没有差别吧! rs.close response.redirect "main.asp" end if %> <% session.abandon '强行释放 %> 到这里我们就讲完了谢谢大家的支持!最后送大家2件宝贝! 管理界面和管理处理 管理界面! <form method="post" action="xasql.asp"> 要处理的主题的MID: <input type="text" name="TSQL-ID" maxlength=72> <br> <input type="radio" name="dosql" value="1" >禁止 <input type="radio" name="dosql" value="2" checked>开放 <input type="radio" name="dosql" value="3" >删除 <br> 处理语句:<br> <input type="text" name="TSQL1" maxlength=120 size=130><br> <input type="submit" value="提交"><input type="reset" value="重置"> <div style="display:none"> <input type="radio" name="SQLX" value="2" checked> </div> </form> 然后是管理处理 <div class=msgbody><div class=msgheader>QUOTE:</div><div class=msgborder>session.timeout=5 session("X")=request.form("SQLX") session("A")=request.form("TSQL-ID") session("B")=request.form("dosql") session("x1")=request.form("TSQL1") session("x2")=request.form("TSQL2") session("x3")=request.form("TSQL3") session("x4")=request.form("TSQL4") session("x5")=request.form("TSQL5") dbpath="data/#key.mdb" Set conn=Server.CreateObject("adodb.connection") db="provider = Microsoft.Jet.OLEDB.4.0;Data Source ="&server.mappath(dbpath) conn.open db set rs=server.CreateObject("adodb.recordset") if session("A")<>empty then if session("X")=1 or session("X")=2 then session("SQLpd") = "select * from main where mlistid=" + cstr(session("A")) rs.open session("SQLpd"),conn,2,3 rs.movefirst select case session("B") case 1 response.write "已禁止以下帖子" &"<br>" while not rs.eof rs(8).value=0 response.write "listid: #" & rs(0) & "# mlistid:#" & rs(1) & "# 标题:《" & rs(3) &"》<br>" rs.movenext wend case 2 response.write "已打开以下帖子" &"<br>" while not rs.eof rs(8).value=1 response.write "listid: #" & rs(0) & "# mlistid:#" & rs(1) & "# 标题:《" & rs(3) &"》<br>" rs.movenext wend case 3 response.write "已删除以下帖子" &"<br>" while not rs.eof response.write "listid: #" & rs(0) & "# mlistid:#" & rs(1) & "# 标题:《" & rs(3) &"》<br>" rs.delete rs.movenext wend end select rs.updatebatch rs.close end if end if if session("x1")<>empty then session("SQLpd") = session("x1") rs.open session("SQLpd"),conn,2,3 %> <table border="1"> <tr height=30> <% for i =0 to rs.fields.count-1 rs.movefirst response.write "<td>"&rs(i).name next response.write "</tr>" while not rs.eof row = "<tr height=30>" for i=0 to rs.fields.count-1 row = row&"<td>"&rs(i) next response.write row&"</tr>" rs.movenext wend rs.close end if %> </table> 就是这个的实例!谢谢大家! [此帖子已被 轻轻风聆 在 2007-8-24 9:11:26 编辑过] |