Data.asp
上传用户:btntkt
上传日期:2021-04-16
资源大小:5296k
文件大小:49k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

DOS

  1. <!--#include file="check.asp"-->
  2. <!--#include file="../inc/page_cls.asp"-->
  3. <!--#include file="../inc/ubb_cls.asp"-->
  4. <%
  5. dim action
  6. server.scripttimeout =999999
  7. const topicfile="../uploadfile/topicfile/"
  8. const del="../uploadfile/del/"'移动文件的目录
  9. response.write("<body>")
  10. action=request.querystring("action")
  11. select case action
  12. case"saveautesqltable"
  13. response.flush
  14. saveautesqltable
  15. case"saveaddsqltable"
  16. response.flush
  17. saveaddsqltable
  18. case"delsqltable"
  19. response.flush
  20. delsqltable
  21. case"compressdata2"
  22. compressdata2
  23. case"executesql"
  24. executesql
  25. case"delessay"
  26. delessay
  27. case"exedelessay"
  28. exedelessay
  29. case"exemoveessay"
  30. exemoveessay
  31. case"delsms"
  32. delsms
  33. case"exedelsms"
  34. exedelsms
  35. case"allsms"
  36. allsms
  37. case"exeallsms"
  38. exeallsms
  39. case"uploadfile"
  40.         uploadhead
  41. uploadfile
  42. case"delnouse"
  43. notfso
  44.         uploadhead
  45. delnouse
  46. case"delnovisit"
  47. notfso
  48.         uploadhead
  49. delnovisit
  50. case"deluphalfyear"
  51. notfso
  52.         uploadhead
  53. deluphalfyear
  54. case"deloptfile"
  55. notfso
  56.          uploadhead
  57. deloptfile
  58. case"delall"
  59. notfso
  60.         uploadhead
  61. delall
  62. case "recycle"
  63. recycle()
  64. case "seerecycle"
  65. seerecycle()
  66. case "tbinfo"
  67. tbinfo()
  68. case "delrecycle"
  69. delrecycle()
  70. case "submit"
  71. submit()
  72. case "giveback"
  73. giveback()
  74. case "recycledelall"
  75. recycledelall()
  76. case "allmail"
  77. allmail()
  78. case else
  79. sqltable
  80. end select
  81. adminfooter()
  82. sub sqltable
  83. dim alltable,i
  84. %>
  85.         <div class="ta">
  86.         <div class="th jz">数据表管理</div>
  87.         <div class="td w772"><b>说明:</b><br />
  88.   默认选中的为当前论坛所使用来保存帖子数据的表,<br />删除数据表将同时全部删除该数据表的所有帖子,请注意!!!<br />
  89. 一般帖子数量超过4万左右,请再添加一个数据表,这样您会发现论坛会快很多。</div><div style='clear: both;'></div> </div>
  90. <br />
  91. <form method=post name=form style='margin:0' action=?action=saveautesqltable>
  92.         <div class="ta">
  93.         <div class="th jz">设置默认数据表</div>
  94.         <div class="td3 w219">数据</div>
  95.         <div class="td3 w87">帖数</div>
  96.         <div class="td3 w219">默认</div>
  97.         <div class="td3 w219" >操作</div>
  98.         <%alltable=split(yxbbs.bbstable(0),",")
  99. for i=0 to ubound(alltable)
  100. response.write"<div class=""td3 h20 w219"">yx_bbs"&alltable(i)&"</div><div class=""td3 h20 w87"">"&yxbbs.execute("select count(bbsid) from[yx_bbs"&alltable(i)&"]")(0)&"</div><div class=""td3 h20 w219""><input name='aute' type='radio' value='"&alltable(i)&"'"
  101. if yxbbs.bbstable(1)=alltable(i) then
  102.  response.write" checked=""true""></div><a onclick=alert('该数据表为默认数据表,不能删除默认的数据表!') href='#'>"
  103.  else
  104.  response.write"></div><a onclick=checkclick('注意!删除将包括数据表的所有帖子!nn删除后将不能恢复!您确定要删除吗?') href='?action=delsqltable&id="&alltable(i)&"'>"
  105.  end if
  106.  response.write"<div class=""td3 h20 w219""><img src='../images/del.gif' width='15' height='15' border='0' align='absmiddle' /> 删除</a></div>"
  107. next
  108. %>
  109. <div style="clear: both;"></div><div class="tf jz"><input type="submit" value=" 提 交 ">&nbsp;&nbsp;<input type="reset" value=" 重 置 "></div><div style='clear: both;'></div> </div></form><br />
  110. <form method=post name=form style='margin:0' action=?action=saveaddsqltable>
  111.          <div class="ta">
  112.  <div class="th jz">增加数据表</div>
  113.          <div class="td w772">新数据表名称:yx_bbs
  114.  <input type="text" name="tablename"  size="2" value="<%=int(ubound(alltable)+2)%>" onkeypress='event.returnvalue=(event.keycode >= 48) && (event.keycode <= 57);'> (只填写数字,不能和现有的数据表相同。)</div>
  115.          <div style="clear: both;"></div><div class="tf jz"><input type="submit" value=" 提 交 ">&nbsp;&nbsp;<input type="reset" value=" 重 置 "></div>
  116. <div style='clear: both;'></div> </div></form>
  117. <%
  118. end sub
  119. sub saveautesqltable
  120. dim aute,temp,alltable,i
  121. aute=yxbbs.fun.getstr("aute")
  122. alltable=split(yxbbs.bbstable(0),",")
  123. temp=""
  124. for i=0 to ubound(alltable)
  125. if aute=alltable(i) then temp="yes"
  126. next
  127. if temp="" then
  128. call goback("系统出错","无效的数据表名称!"):exit sub
  129. end if
  130. if int(aute)<>int(yxbbs.bbstable(1)) then
  131. temp=yxbbs.bbstable(0)&"|"&int(aute)
  132. yxbbs.execute("update [yx_config] set bbstable='"&temp&"' ")
  133. end if
  134. cache.name="config"
  135. cache.clean()
  136. call suc("","更改论坛默认数据表成功!","?action=sqltable")
  137. end sub
  138. sub saveaddsqltable
  139. dim tablename,alltable,i,temp
  140. tablename=yxbbs.fun.getstr("tablename")
  141. if not yxbbs.fun.isinteger(tablename) then
  142. call goback("","请用正整数的数字填写!")
  143. exit sub
  144. end if
  145. if int(tablename)=0 then
  146. call goback("","数据表名不能为0")
  147. exit sub
  148. end if
  149. alltable=split(yxbbs.bbstable(0),",")
  150. for i=0 to ubound(alltable)
  151. if int(tablename)=int(alltable(i)) then
  152. call goback("","数据表名已经存在!")
  153. exit sub
  154. end if
  155. next
  156. temp=yxbbs.bbstable(0)&","&tablename&"|"&yxbbs.bbstable(1)
  157. yxbbs.execute("update [yx_config] set bbstable='"&temp&"'")
  158. yxbbs.execute("create table [yx_bbs"&tablename&"](bbsid int identity (1, 1) not null constraint primarykey primary key,topicid int default 0,replytopicid int default 0,boardid int default 0,name varchar(20),caption varchar(255),content text,face int default 0,addtime datetime,lasttime datetime,isdel bit,buyer text,ip varchar(40),ubbstring varchar(255))")
  159. yxbbs.execute("create index topicid on [yx_bbs"&tablename&"] (topicid)")
  160. yxbbs.execute("create index boardid on [yx_bbs"&tablename&"] (boardid)")
  161. yxbbs.execute("create index replytopicid on [yx_bbs"&tablename&"] (replytopicid)")
  162. cache.name="config"
  163. cache.clean()
  164. call suc("","成功的添加了 yx_bbs"&tablename&" 数据表!","?action=sqltable")
  165. end sub
  166. sub delsqltable
  167. dim id,temp,alltable,i
  168. id=request.querystring("id")
  169. if int(id)=int(yxbbs.bbstable(1)) then
  170. call goback("","该表被设定为默认使用表,不能删除!")
  171. exit sub
  172. end if
  173. alltable=split(yxbbs.bbstable(0),",")
  174. temp=""
  175. for i=0 to ubound(alltable)
  176. if int(id)=int(alltable(i)) then temp="yes"
  177. next
  178. if temp="" then
  179. call goback("系统出错","无效的数据表名称!"):exit sub
  180. end if
  181. temp=""
  182. for i=0 to ubound(alltable)
  183. if int(id)<>int(alltable(i)) then
  184. temp=temp&alltable(i)&","
  185. end if
  186. next
  187. temp=left(temp,len(temp)-1)
  188. temp=temp&"|"&yxbbs.bbstable(1)
  189. yxbbs.execute("update [yx_config] set bbstable='"&temp&"'")
  190. yxbbs.execute("drop table [yx_bbs"&id&"]")
  191. yxbbs.execute("delete*from [yx_topic] where sqltableid="&id&"")
  192. cache.name="config"
  193. cache.clean()
  194. call suc("","成功的删除名称为 yx_bbs"&id&" 的数据表及该数据表的所有帖子!","?action=sqltable")
  195. end sub
  196. sub compressdata2()
  197. dim dbpath,boolis97,caption,content,fso,dbpath1,bkfolder,bkdbname,dbpath2,backpath
  198. caption="压缩数据库"
  199. content="<b>注意:</b>输入数据库所在相对路径,并且输入数据库名称(如果正在使用中数据库不能压缩,请选择备份数据库进行压缩操作)<hr size=1>"&_
  200. "<form style='margin:0' method='post'action='?action=compressdata2&go=start'>压缩数据库:<input type='text' name='dbpath' value='请输入数据库路径'>&nbsp;<input type='submit' value='开始压缩'><br /></form>"&_
  201. "<input type='checkbox' name='boolis97' value='true'>如果使用 access 97 数据库请选择(默认为 access 2000 数据库)"
  202. call showtable(caption,content)
  203. if request("go")="start" then
  204. response.flush
  205. dbpath = request("dbpath")
  206. boolis97 = request("boolis97")
  207. if dbpath <> "" then
  208. if session(yxbbs.cachename&"fso")="no" then
  209. call goback("","空间不支持fso,无法使用此功能!")
  210. exit sub
  211. end if
  212. dbpath = server.mappath(dbpath)
  213. content=compactdb(dbpath,boolis97)
  214. call showtable(caption,content)
  215. end if
  216. end if
  217. caption="备份论坛数据"
  218. content="<b>注意:</b>为保证您的数据安全,备份时请不要用默认名称来命名备份数据库。<hr size=1>"&_
  219. "<form style='margin:0' method='post' action='?action=compressdata2&go=starta'>当前数据库路径(相对路径):<input type=text size=15 name=dbpath1 value='请输入数据库路径'><br />"&_
  220. "备份数据库目录(相对路径):<input type=text size='15' name='bkfolder' value='databak'>&nbsp;如目录不存在,程序将自动创建<br />"&_
  221. "备份数据库名称(填写名称):<input type=text size=15 name=bkdbname value='"&formatdatetime(now(),2)&".asp'>&nbsp;如备份目录有该文件,将覆盖,如没有,将自动创建<br />"&_
  222. "<input type=submit value=' 开始备份 '></form>"
  223. call showtable(caption,content)
  224. if request("go")="starta" then
  225. if session(yxbbs.cachename&"fso")="no" then
  226. call goback("","空间不支持fso,无法使用此功能!")
  227. exit sub
  228. end if
  229. dbpath1=yxbbs.fun.getstr("dbpath1")
  230. dbpath1=server.mappath(dbpath1)
  231. bkfolder=yxbbs.fun.getstr("bkfolder")
  232. bkdbname=yxbbs.fun.getstr("bkdbname")
  233. set fso=server.createobject("scripting.filesystemobject")
  234. if fso.fileexists(dbpath1) then
  235. if checkdir(bkfolder) = true then
  236. fso.copyfile dbpath1,bkfolder& ""& bkdbname
  237. else
  238. makenewsdir bkfolder
  239. fso.copyfile dbpath1,bkfolder& ""& bkdbname
  240. end if
  241. caption="备份成功":content="备份数据库成功!您备份的数据库路径为 " &bkfolder& ""& bkdbname
  242. else
  243. caption="错误信息":content="找不到您所需要备份的文件。"
  244. end if
  245. call showtable(caption,content)
  246. end if
  247. caption="恢复论坛数据"
  248. content="<b>注意:</b>恢复数据库 一般是用来恢复(数据丢失或被破坏)的当前使用数据库。<hr size=1>"&_
  249. "<form method='post' style='margin:0' action='?action=compressdata2&go=starth'>备份数据库(相对路径):<input type='text' size='30' name='backpath' value='databak/"&formatdatetime(now(),2)&".asp'> 请填写用来恢复的备份文件<br />"&_
  250. "当前数据库(相对路径):<input type='text' size='30' name='dbpath2' value='请输入数据库路径'> 填写您当前使用的数据库<br /><input onclick=checkclick('您确定要用备份的数据库覆盖当然使用的数据库吗!?') type=submit value=' 恢复数据 '></form> "
  251. call showtable(caption,content)
  252. if request("go")="start" then
  253. if session(yxbbs.cachename&"fso")="no" then
  254. call goback("","空间不支持fso,无法使用此功能!")
  255. exit sub
  256. end if
  257.         if request("go")="starth" then
  258.         caption="错误信息"
  259. dbpath2=yxbbs.fun.getstr("dbpath2")
  260. backpath=yxbbs.fun.getstr("backpath")
  261. if backpath="" or dbpath2="" then
  262. content="请把全名填写完整!"
  263. else
  264. dbpath2=server.mappath(dbpath2)
  265. backpath2=server.mappath(backpath2)
  266. set fso=server.createobject("scripting.filesystemobject")
  267. if fso.fileexists(dbpath2) then  
  268. on error resume next
  269. fso.copyfile backpath,dbpath2
  270. if err.number=0 then
  271. caption="恢复成功":content="成功的恢复数据库!"
  272. else
  273. caption="错误信息":content="不是当前使用的数据库全名"
  274. err.clear
  275. end if
  276. else
  277. content= "备份目录下并无您的备份文件!"
  278. end if
  279.  end if
  280. call showtable(caption,content)
  281. end if
  282. end if
  283. end sub
  284. function compactdb(dbpath, boolis97)
  285. dim fso,engine,strdbpath,jet_3x,content
  286. strdbpath = left(dbpath,instrrev(dbpath,""))
  287. set fso = createobject("scripting.filesystemobject")
  288. if fso.fileexists(dbpath) then
  289. fso.copyfile dbpath,strdbpath & "temp.mdb"
  290. set engine = createobject("jro.jetengine")
  291. if boolis97 = "true" then
  292. engine.compactdatabase "provider=microsoft.jet.oledb.4.0;data source=" & strdbpath & "temp.mdb", _
  293. "provider=microsoft.jet.oledb.4.0;data source=" & strdbpath & "temp1.mdb;" _
  294. & "jet oledb:engine type=" & jet_3x
  295. else
  296. engine.compactdatabase "provider=microsoft.jet.oledb.4.0;data source=" & strdbpath & "temp.mdb", _
  297. "provider=microsoft.jet.oledb.4.0;data source=" & strdbpath & "temp1.mdb"
  298. end if
  299. fso.copyfile strdbpath & "temp1.mdb",dbpath
  300. fso.deletefile(strdbpath & "temp.mdb")
  301. fso.deletefile(strdbpath & "temp1.mdb")
  302. set fso = nothing
  303. set engine = nothing
  304. compactdb = "<li>你的数据库 " & dbpath & ",已经压缩成功!" 
  305. else
  306. compactdb = "<li>数据库名称或路径不正确! 请重试!" 
  307. end if
  308. end function
  309. '检测目录是否存在
  310. function checkdir(folderpath)
  311. dim fso1
  312. folderpath=server.mappath(".")&""&folderpath
  313.     set fso1 = createobject("scripting.filesystemobject")
  314.     if fso1.folderexists(folderpath) then
  315.        '存在
  316.        checkdir = true
  317.     else
  318.        '不存在
  319.        checkdir = false
  320.     end if
  321.     set fso1 = nothing
  322. end function
  323. '建立目录
  324. function makenewsdir(foldername)
  325. dim fso1
  326. dim f
  327.     set fso1 = createobject("scripting.filesystemobject")
  328.         set f = fso1.createfolder(foldername)
  329.         makenewsdir = true
  330.     set fso1 = nothing
  331. end function
  332. sub executesql
  333. dim sql,caption,content
  334. sql=request.form("sql")
  335. caption="执行sql语句"
  336. content="<form onsubmit=checkclick('注意!操作不当有可能破坏数据库!nn您确定要执行sql语句吗?') method=post style='margin:0'>指令:<input type=text name='sql' value='"&sql&"' style='width:90%'><br />注意:此操作不可恢复,如果对sql语法不了解,请慎用!<input type=submit value=' 确定执行 '></form>"
  337. call showtable(caption,content)
  338. if sql<>"" then
  339. response.write("<br />")
  340. on error resume next 
  341. yxbbs.execute(sql)
  342. if err.number=0 then
  343. caption="执行成功":content="<li>sql语句正确,已经成功的执行了下面这条语句!<li><font color=red>"&sql&"</font>"
  344. else
  345. caption="错误信息":content="<li>不能执行,语句有问题,具体出错如下:<li>"&err.description&"<br />"
  346. err.clear
  347. end if
  348. call showtable(caption,content)
  349. end if
  350. end sub
  351. sub delessay
  352. %>
  353. <form method=post name=form style='margin:0' action=?action=exedelessay&go=date>
  354. <div class="ta">
  355. <div class="th jz">删除指定日期前的帖子</div>
  356. <div class="td1 h20">删除多少天前的帖子:</div>
  357. <div class="td2 h20"><input name="datenum" type="text" value="365" size="5"> 天</div>
  358. <div class="td1 h20">选择所在的论坛版面:</div>
  359. <div class="td2 h20"><select name="boardid"><option value="0">所有的论坛</option><%=yxbbs.boardidlist(0,0)%></select></div>
  360. <div class="td h20 w772">说明:此操作将删除指定天数前发表的主题帖,同时也包括主题的回复帖(当然,该主题最新的回复帖也会被删除)。</div>
  361. <div style="clear: both;"></div><div class="tf jz"><input type="submit" value=" 提 交 " onclick=checkclick('注意:删除后将不能恢复!您确定删除吗?')> &nbsp;&nbsp;<input type="reset" name="submit" value=" 重 置 "></div> </div>
  362. </form><br />
  363. <form method=post name=form style='margin:0' action=?action=exedelessay&go=datenore>
  364. <div class="ta">
  365. <div class="th jz">删除指定日期前没有回复的主题</div>
  366. <div class="td1 h20">删除多少天前的帖子:</div>
  367. <div class="td2 h20"><input name="datenum" type="text" value="365" size="5"> 天</div>
  368. <div class="td1 h20">删除帖子所在的论坛:</div>
  369. <div class="td2 h20"><select name="boardid"><option value="0">所有的论坛</option><%=yxbbs.boardidlist(0,0)%></select></div>
  370. <div style='clear: both;'></div><div class="tf jz"><input type="submit" value=" 提 交 " onclick=checkclick('注意:删除后将不能恢复!您确定删除吗?')> &nbsp;&nbsp;<input type="reset" name="submit" value=" 重 置 "></div>
  371.  </div>
  372. </form>
  373. <br />
  374. <form method=post name=form style='margin:0' action=?action=exemoveessay&go=date>
  375. <div class="ta">
  376. <div class="th jz">按指定天数移动帖子</div>
  377. <div class="td1 h20">移动多少天前的帖子:</div>
  378. <div class="td2 h20"><input name="datenum" type="text" value="100" size="5"> 天</div>
  379. <div class="td1 h20">帖子原来所在的论坛:</div>
  380. <div class="td2 h20"><select size="1" name="boardid1"><%=yxbbs.boardidlist(0,0)%></select></div>
  381. <div class="td1 h20">帖子要移动到的论坛:</div>
  382. <div class="td2 h20"><select size="1" name="boardid2"><%=yxbbs.boardidlist(0,0)%></select></div>
  383. <div style="clear: both;"></div><div class="tf jz"><input type="submit" value=" 提 交 " onclick=checkclick('注意:删除后将不能恢复!您确定删除吗?')> &nbsp;&nbsp;<input type="reset" name="submit" value=" 重 置 "></div>
  384. </div>
  385. </form><br />
  386. <form method=post name=form style='margin:0' action=?action=exemoveessay&go=user>
  387. <div class="ta">
  388. <div class="th jz">移动指定用户的帖子</div>
  389. <div class="td1 h20">请输入指定的用户名:</div>
  390. <div class="td2 h20"><input name="name" type="text"  size="20"></div>
  391. <div class="td1 h20">帖子原来所在的论坛:</div>
  392. <div class="td2 h20"><select size="1" name="boardid1"><%=yxbbs.boardidlist(0,0)%></select></div>
  393. <div class="td1 h20">帖子要移动到的论坛:</div>
  394. <div class="td2 h20"><select size="1" name="boardid2"><%=yxbbs.boardidlist(0,0)%></select></div>
  395. <div style="clear: both;"></div><div class="tf jz"><input type="submit" value=" 提 交 " onclick=checkclick('注意:删除后将不能恢复!您确定删除吗?')> &nbsp;&nbsp;<input type="reset" name="submit" value=" 重 置 "></div> </div>
  396. </form>
  397. <%
  398. end sub
  399. sub exedelessay
  400. dim username,datenum,boardid,alltable,i,tieid
  401. datenum=yxbbs.fun.getstr("datenum")
  402. boardid=yxbbs.fun.getstr("boardid")
  403. alltable=split(yxbbs.bbstable(0),",")
  404. select case request("go")
  405. case"date"
  406. if not isnumeric(datenum) then call goback("","天数必需用数字填写!"):exit sub
  407. if boardid=0 then
  408. for i=0 to ubound(alltable)
  409. yxbbs.execute("delete from[yx_bbs"&alltable(i)&"] where topicid in (select topicid from [yx_topic] where datediff('d',[addtime],'"&yxbbs.nowbbstime&"')>"&datenum&") or replytopicid in (select topicid from [yx_topic] where datediff('d',[addtime],'"&yxbbs.nowbbstime&"')>"&datenum&")")
  410. next
  411. yxbbs.execute("delete from[yx_topic] where  datediff('d',[addtime],'"&yxbbs.nowbbstime&"')>"&datenum&"")
  412. call suc("","已经成功删除所有论坛在"&datenum&"天前发表的主题帖(包括其回复帖)!<li>删除后建议对论坛做一次<a href=basic.asp?action=updatebbs>整理</a>","?action=delessay")
  413. else
  414. for i=0 to ubound(alltable)
  415. yxbbs.execute("delete from[yx_bbs"&alltable(i)&"] where boardid="&boardid&" and (topicid in (select topicid from [yx_topic] where datediff('d',[addtime],'"&yxbbs.nowbbstime&"')>"&datenum&") or replytopicid in (select topicid from [yx_topic] where datediff('d',[addtime],'"&yxbbs.nowbbstime&"')>"&datenum&"))")
  416. next
  417. yxbbs.execute("delete from[yx_topic] where boardid="&boardid&" and datediff('d',[addtime],'"&yxbbs.nowbbstime&"')>"&datenum&"")
  418. call suc("","已经成功删除在 "&yxbbs.execute("select boardname from[yx_board]where boardid="&boardid&"")(0)&" 上 "&datenum&" 天前发表的主题帖(包括其回复帖)!<li>删除后建议对论坛做一次<a href=basic.asp?action=updatebbs>整理</a>","?action=delessay")
  419. end if
  420. case"datenore"
  421. if not isnumeric(datenum) then call goback("","天数必需用数字填写!"):exit sub
  422. if boardid=0 then
  423. for i=0 to ubound(alltable)
  424. yxbbs.execute("delete from[yx_bbs"&alltable(i)&"] where topicid in (select topicid from [yx_topic] where datediff('d',lasttime,'"&yxbbs.nowbbstime&"')>"&datenum&") or replytopicid in (select topicid from [yx_topic] where datediff('d',lasttime,'"&yxbbs.nowbbstime&"')>"&datenum&")")
  425. next
  426. yxbbs.execute("delete from[yx_topic] where  datediff('d',lasttime,'"&yxbbs.nowbbstime&"')>"&datenum&"")
  427. call suc("","已经成功删除所有论坛在"&datenum&"天前没有回复的所有主题帖(包括其回复)!<li>建议删除后对论坛做一次<a href=basic.asp?action=updatebbs>整理</a>","?action=delessay")
  428. else
  429. for i=0 to ubound(alltable)
  430. yxbbs.execute("delete from[yx_bbs"&alltable(i)&"] where topicid in (select topicid from [yx_topic] where boardid="&boardid&" and datediff('d',[lasttime],'"&yxbbs.nowbbstime&"')>"&datenum&") or replytopicid in (select topicid from [yx_topic] where boardid="&boardid&" and datediff('d',[lasttime],'"&yxbbs.nowbbstime&"')>"&datenum&")")
  431. next
  432. yxbbs.execute("delete from[yx_topic] where boardid="&boardid&" and datediff('d',[lasttime],'"&yxbbs.nowbbstime&"')>"&datenum&"")
  433. call suc("","已经成功删除在 "&yxbbs.execute("select boardname from[yx_board]where boardid="&boardid&"")(0)&" 上 "&datenum&" 天前没回复的主题帖(包括其回复帖)!<li>删除后建议对论坛做一次<a href=basic.asp?action=updatebbs>整理</a>","?action=delessay")
  434. end if
  435. case else
  436. call goback("","提交的路径不正确")
  437. end select
  438. end sub
  439. sub exemoveessay
  440. dim boardid1,boardid2,datenum,username,alltable,i
  441. boardid1=yxbbs.fun.getstr("boardid1")
  442. boardid2=yxbbs.fun.getstr("boardid2")
  443. if boardid1=boardid2 then call goback("","您还没有选择目标论坛!"):exit sub
  444. alltable=split(yxbbs.bbstable(0),",")
  445. datenum=yxbbs.fun.getstr("datenum")
  446. username=yxbbs.fun.getstr("name")
  447. select case request("go")
  448. case"date"
  449. if not isnumeric(datenum) then call goback("","天数必需用数字填写!"):exit sub
  450. for i=0 to ubound(alltable)
  451. yxbbs.execute("update [yx_bbs"&alltable(i)&"] set boardid="&boardid2&" where topicid in (select topicid from[yx_topic] where datediff('d',[addtime],'"&yxbbs.nowbbstime&"')>"&datenum&" and boardid="&boardid1&") or replytopicid in (select topicid from[yx_topic] where datediff('d',[addtime],'"&yxbbs.nowbbstime&"')>"&datenum&" and boardid="&boardid1&")")
  452. next
  453. yxbbs.execute("update [yx_topic] set boardid="&boardid2&" where boardid="&boardid1&" and datediff('d',[addtime],'"&yxbbs.nowbbstime&"')>"&datenum&"")
  454. call suc("","已经成功的把"&datenum&"天前的帖子从 "&yxbbs.execute("select boardname from[yx_board] where boardid="&boardid1&"")(0)&" 移动到 "&yxbbs.execute("select boardname from[yx_board] where boardid="&boardid2&"")(0)&"!","?action=delessay")
  455. case"user"
  456. if username="" then call goback("",""):exit sub
  457. if yxbbs.execute("select name from[yx_user] where name='"&username&"'").eof then
  458. call goback("","这个用户根本不存在!"):exit sub
  459. else
  460. for i=0 to ubound(alltable)
  461. yxbbs.execute("update [yx_bbs"&alltable(i)&"] set boardid="&boardid2&" where topicid in(select topicid from[yx_topic] where boardid="&boardid1&" and name='"&username&"') or replytopicid in (select topicid from[yx_topic] where boardid="&boardid1&" and name='"&username&"')")
  462. next
  463. yxbbs.execute("update [yx_topic] set boardid="&boardid2&"  where boardid="&boardid1&" and name='"&username&"'")
  464. call suc("","已经成功的把"&username&"的帖子从 "&yxbbs.execute("select boardname from[yx_board] where boardid="&boardid1&"")(0)&" 移动到 "&yxbbs.execute("select boardname from[yx_board] where boardid="&boardid2&"")(0)&"!","?action=delessay")
  465. end if
  466. end select
  467. end sub
  468. sub delsms
  469. %>
  470. <form method=post name=form style='margin:0' action=?action=exedelsms&go=date>
  471. <div class="ta">
  472. <div class="th jz">删除指定日期前的所有留言</div>
  473. <div class="td1 h20">删除多少天前的留言:</div>
  474. <div class="td2 h20"><input name="datenum" type="text" value="60" size="5"> 天</div>
  475. <div style="clear: both;"></div><div class="tf jz"><input type="submit" value=" 提 交 " onclick=checkclick('注意:删除后将不能恢复!您确定删除吗?')> &nbsp;&nbsp;<input type="reset" name="submit" value=" 重 置 "></div></div>
  476. </form><br />
  477. <form method=post name=form style='margin:0' action=?action=exedelsms&go=user>
  478. <div class="ta">
  479. <div class="th jz">删除指定用户的所有留言</div>
  480. <div class="td1 h20">请输入指定用户名称:</div>
  481. <div class="td2 h20"><input name="name" type="text" size="20"></div>
  482. <div style="clear: both;"></div><div class="tf jz"><input type="submit" value=" 提 交 " onclick=checkclick('注意:删除后将不能恢复!您确定删除吗?')> &nbsp;&nbsp;<input type="reset" name="submit" value=" 重 置 "></div></div>
  483. </form><br />
  484. <form method=post name=form style='margin:0' action=?action=exedelsms&go=auto>
  485. <div class="ta">
  486. <div class="th jz">删除自动发送的信件</div>
  487. <div class="td1 h20">删除多少天前自动发送的信件:</div>
  488. <div class="td2 h20"><input name="datenum" type="text" value="30" size="5">天</div>
  489. <div style="clear: both;"></div><div class="tf jz"><input type="submit" value=" 提 交 " onclick=checkclick('注意:删除后将不能恢复!您确定删除吗?')> &nbsp;&nbsp;<input type="reset" name="submit" value=" 重 置 "></div></div>
  490. </form>
  491. <%
  492. end sub
  493. sub exedelsms
  494. dim username,datenum,boardid
  495. datenum=yxbbs.fun.getstr("datenum")
  496. select case request("go")
  497. case"date"
  498. if not isnumeric(datenum) then 
  499. call goback("","天数必需用数字填写!")
  500. else
  501. yxbbs.execute("delete from[yx_sms] where datediff('d',[addtime],'"&yxbbs.nowbbstime&"')>"&datenum&"")
  502. call suc("","已经成功删除在"&datenum&"天前的所有留言信件!","?action=delsms")
  503. end if
  504. case"user"
  505. username=yxbbs.fun.getstr("name")
  506. if yxbbs.execute("select name from[yx_user] where lcase(name)='"&lcase(username)&"'").eof then
  507. call goback("","这个用户根本不存在!")
  508. else
  509. yxbbs.execute("delete from[yx_sms] where myname='"&username&"'")
  510. call suc("","已经成功删除了 "&username&" 的所有留言信件!","?action=delsms")
  511. end if
  512. case"auto"
  513. if not isnumeric(datenum) then 
  514. call goback("","天数必需用数字填写!")
  515. else
  516. yxbbs.execute("delete from[yx_sms] where datediff('d',[addtime],'"&yxbbs.nowbbstime&"')>"&datenum&" and name='系统消息'")
  517. call suc("","已经成功删除在"&datenum&"天前的所有论坛自动送信的留言信件!","?action=delsms")
  518. end if
  519. end select
  520. end sub
  521. sub allsms
  522. %>
  523. <form method=post  name=yimxu style='margin:0' action=?action=exeallsms  onsubmit="ok.disabled=true;ok.value='正在群发信件-请稍等。。。'">
  524. <div class="ta">
  525. <div class="th jz">群发站内信</div>
  526. <div class="td3 w770">注意:此操作可能将消耗大量服务器资源。请慎用!</div>
  527. <div class="td1 h20">接收用户:</div>
  528. <div class="td2 h20"><select name='user' style='font-size: 9pt'>
  529. <option value=0 selected>所有在线用户</option>
  530. <option value=1>所有注册用户</option>
  531. <option value=2>所有论坛版主</option>
  532. <option value=3>所有总版主</option>
  533. <option value=4>所有管理员</option>
  534. <option value=5>管理团队(管理员+总版主+版主)</option>
  535. </select></div>
  536. <div class="td1 h20">消息标题:</div>
  537. <div class="td2 h20"><input name="title" type="text" id="title" size="40" maxlength="50"></div>
  538. <div class="td1 h70">消息内容:</div>
  539. <div class="td2 h70 w446"><textarea name=content  cols=90 rows='4'></textarea></div>
  540. <div style='clear: both;'></div><div class="tf jz"><input  type='submit' value='确定送出' name="ok">&nbsp;<input type='reset' value='取消重写'></div> </div></form>
  541. <br>
  542. <form method=post  name=yimxu style='margin:0' action=?action=allmail  onsubmit="ok.disabled=true;ok.value='正在群发信件-请稍等。。。'">
  543. <div class="ta">
  544. <div class="th jz">群发E-mail</div>
  545. <div class="td3 w770">注意:服务器如果不支持Jmail将不能使用此功能!</div>
  546. <div class="td1 h20">接收用户:</div>
  547. <div class="td2 h20"><select name='mailusertype' style='font-size: 9pt'>
  548. <option value=0 selected>所有注册用户</option>
  549. <option value=1>管理团队(管理员+总版主+版主)</option>
  550. </select></div>
  551. <div class="td1 h20">邮件标题:</div>
  552. <div class="td2 h20"><input name="mailtitle" type="text" id="title" size="40" maxlength="50"></div>
  553. <div class="td1 h70">邮件内容:</div>
  554. <div class="td2 h70 w446"><textarea name=mailcontent  cols=90 rows='4'></textarea></div>
  555. <div style='clear: both;'></div><div class="tf jz"><input  type='submit' value='确定送出' name="ok">&nbsp;<input type='reset' value='取消重写'></div> </div></form>
  556. <%
  557. end sub
  558. sub allmail
  559. dim sendemail,jmail,content,mailtitle,mailcontent,mailusertype,a,sql,b
  560. mailtitle=yxbbs.fun.getstr("mailtitle")
  561. mailcontent=yxbbs.fun.getstr("mailcontent")
  562. mailusertype=yxbbs.fun.getstr("mailusertype")
  563. b=""
  564. if mailusertype=0 then
  565. a=""
  566. else
  567. a=" where classid<=3"
  568. end if
  569.  set rs=server.CreateObject("adodb.recordset")
  570.  sql="select mail from Yx_user "&a&""
  571.  rs.open sql,conn,1,1 
  572.  do while not rs.eof
  573.                         sendemail=rs(0)
  574. Set JMail = Server.CreateObject("Jmail.Message")
  575. JMail.From = ""&YxBBs.BBSSetting(20)&""   '来自哪果发送
  576. JMail.CharSet = "GB2312"
  577. JMail.Priority = 3
  578. JMail.ReplyTo = ""&YxBBs.BBSSetting(20)&"" '回复email
  579. JMail.AddRecipient sendemail
  580. JMail.Subject = mailtitle
  581. content=content & mailcontent
  582. JMail.AppendHTML content
  583. JMail.MailServerusername = ""&YxBBs.BBSSetting(20)&""    '服务邮箱地址
  584. JMail.MailServerPassword = ""&YxBBs.BBSSetting(21)&""   '服务邮箱密码.
  585. JMail.Send (""&YxBBs.BBSSetting(9)&"")
  586. rs.movenext
  587. loop
  588. call suc("","成功的群发了邮件!","?action=allsms")
  589. end sub
  590. sub exeallsms
  591. dim smstitle,smscontent,usertype,sql,mrs,i
  592. smstitle=yxbbs.fun.getstr("title")
  593. smscontent=yxbbs.fun.getstr("content")
  594. usertype=yxbbs.fun.getstr("user")
  595. if smstitle="" or smscontent="" then call goback("",""):exit sub
  596. select case usertype
  597. case"0"
  598. sql="select name from [yx_online] where classid<>6"
  599. case"1"
  600. sql="select name from [yx_user]"
  601. case"2"
  602. sql="select name from [yx_user] where classid=3"
  603. case"3"
  604. sql="select name from [yx_user] where classid=2"
  605. case"4"
  606. sql="select name from [yx_user] where classid=1"
  607. case"5"
  608. sql="select name from [yx_user] where classid<=3"
  609. case else
  610. call goback("","非法操作"):exit sub
  611. end select
  612. set rs=yxbbs.execute(sql)
  613. if not rs.eof then
  614. mrs=rs.getrows(-1)
  615. rs.close
  616. for i=0 to ubound(mrs,2)
  617. yxbbs.execute("insert into [yx_sms](name,myname,title,content) values('系统消息','"&mrs(0,i)&"','"&smstitle&"','"&smscontent&"')")
  618. yxbbs.execute("update [yx_user] set newsmsnum=newsmsnum+1,smssize=smssize+"&len(smscontent)&" where name='"&mrs(0,i)&"'")
  619. next
  620. end if
  621. call suc("","成功的群发了信件!","?action=allsms")
  622. end sub
  623. sub uploadhead
  624. call showtable("上传文件管理","<center><a href=?action=uploadfile>管理上传记录</a> |  <a href=?action=delnouse>清理无用上传文件</a> | <a href=?action=delnovisit>清理没有访问的文件</a> | <a href=?action=deluphalfyear>批量清理上传文件</a></center>")
  625. end sub
  626. sub uploadfile
  627. dim intpagenow,arr_rs,i,pages,conut,page,strpageinfo
  628. response.write"<form name='yimxu' method='post' action='?action=deloptfile'>"
  629. %>
  630.         <div class="ta">
  631.  <div class="th jz">用户文件上传记录</div>
  632. <div class="td3 jz w50">选择</div>
  633. <div class="td3 jz w219">上传的文件</div>
  634. <div class="td3 jz w152">上传用户</div>
  635. <div class="td3 jz w161">上传日期</div>
  636. <div class="td3 jz w152">大小</div>
  637. <%
  638. intpagenow = request.querystring("page")
  639. set pages = new cls_pageview
  640. pages.strfieldslist = "fileid,filename,username,filetype,filesize,uptime"
  641. pages.strtablename = "[yx_upfile]"
  642. pages.strprimarykey = "fileid"
  643. pages.strorderlist = "fileid desc"
  644. pages.intpagesize = 25
  645. pages.intpagenow = intpagenow
  646. pages.strcookiesname = "upfile"'cookies名称
  647. pages.reloadtime=3'cookies有效分钟
  648. pages.strpagevar = "action=uploadfile&page"
  649. pages.initclass
  650. arr_rs = pages.arrrecordinfo
  651. strpageinfo = pages.strpageinfo
  652. set pages = nothing
  653. if isarray(arr_rs) then
  654. for i = 0 to ubound(arr_rs, 2)
  655. %>
  656. <div class="td3 jz h20 w50"><input type="checkbox" name="filename" value=<%=arr_rs(1,i)%>></div>
  657. <div class="td3 jz h20 w219"><a href="../uploadfile/topicfile/<%=arr_rs(1,i)%>" target=_blank><%=arr_rs(1,i)%></a></div>
  658. <div class="td3 jz h20 w152"><%=arr_rs(2,i)%></div>
  659. <div class="td3 jz h20 w161"><%=arr_rs(5,i)%></div>
  660. <div class="td3 jz h20 w152"><%=arr_rs(4,i)%></div>
  661. <%
  662. next
  663. else
  664. response.write"<div class=""td3 w772"">没有上传文件的记录</div>"
  665. end if
  666. %>
  667. <div style='clear: both;'></div><div class="td w772"><input type=checkbox name=chkall value=on onclick="checkall(this.form)"> 全选&nbsp;&nbsp;<input type="submit"  value="删除所选" onclick=checkclick('删除后将不能恢复!您确定要删除吗?')> </div>
  668. <div style='clear: both;'></div><div class="tf jz"><%=strpageinfo%></div>
  669. </div></form><%
  670. end sub
  671. sub notfso
  672. if session(yxbbs.cachename&"fso")="no" then
  673. call goback("","空间不支持fso文件读写。无法进入下一步。")
  674. call adminfooter()
  675. response.end
  676. end if
  677. end sub
  678. '记取帖子数据
  679. sub delnouse
  680. call logintxt("正在读取数据")
  681. dim alltable,i,temp
  682. temp=""
  683. alltable=split(yxbbs.bbstable(0),",")
  684. for i=0 to ubound(alltable)
  685.     set rs=yxbbs.execute("select content from [yx_bbs"&alltable(i)&"]")
  686. do while not rs.eof
  687. temp=temp&filelist(rs(0))
  688.     rs.movenext
  689. loop
  690. rs.close
  691. next
  692. call showtable("开始清理无效文件","<form method=post action='?action=delall'><input name='files' type='hidden' value='"&temp&"'> 说明:此操作将删除没有在帖子上连接的无用文件。<br /><input name='go' type='radio' value='move' checked=""true""> 移动到<font color=red>"&del&"</font>目录中(建议,为防止误删除,查看无错后再删除这个目录即可)<br /><input name='go' type='radio' value='del'> 直接从空间删除 <hr><input value=' 确 定 ' type=submit></form><script>abc.style.visibility = ""hidden"";</script>")
  693. end sub
  694. rem #核心函数(2005-5-27)
  695. function filelist(str)
  696. dim re,test,temp
  697. dim loopcount
  698. set re=new regexp
  699. re.ignorecase =true
  700. re.global=true
  701. loopcount=0
  702. str = replace(str, chr(10), "")
  703. do while true
  704. re.pattern="[upload=(.[^[]*)]"
  705. test=re.test(str)
  706. if test then
  707. re.pattern="[/upload]"
  708. test=re.test(str)
  709. if test then
  710. re.pattern="(^.*)[upload=(.[^[]*)](.[^[]*)[/upload](.*)"
  711. temp=temp&re.replace(str,"$3")&","
  712. str=re.replace(str,"$1$4")
  713. else
  714. exit do
  715. end if 
  716. else
  717. exit do
  718. end if
  719. loopcount=loopcount + 1
  720. if loopcount>40 then exit do'防止死循环
  721. loop
  722. set re=nothing
  723. filelist=temp
  724. end function
  725. sub logintxt(txt)
  726. %>
  727. <%
  728. response.write"<div id=abc><br /><br />"&txt&",请稍候。。。</div>"
  729. response.flush
  730. end sub
  731. '清理没有访问的文件
  732. sub delnovisit
  733. dim go,deltime,fso,folder,files,upname
  734. go=request.form("go")
  735. deltime=request.form("deltime")
  736. if go="" and deltime="" then
  737. response.write"<form method=post>"
  738. call showtable("清理多少天以前没有访问的上传文件","<input name='go' type='radio' value='move' checked=""true""> 移动到<font color=red>"&del&"</font>目录中(为防止误删除,查看无错后再删除这个目录即可)<br /><input name='go' type='radio' value='del'> 直接从空间删除 <hr>清理在<input name='deltime' size=4 type='text' value='60'>天以前没有访问的上传文件 <input value=' 确 定 ' type=submit></form>")
  739. else
  740. if not isnumeric(deltime) then call goback("","天数必需用数字填写!"):exit sub
  741. call logintxt("正在处理文件")
  742. set fso=server.createobject("scripting.filesystemobject")
  743. if not fso.folderexists(server.mappath(del)) then fso.createfolder(server.mappath(del))
  744. set folder=fso.getfolder(server.mappath(topicfile))
  745. set files=folder.files
  746. for each upname in files
  747. if datediff("d",upname.datelastaccessed,now)>deltime then
  748. if go="move" then
  749. fso.movefile server.mappath(topicfile&upname.name),server.mappath(del&upname.name)
  750. else
  751. fso.deletefile(server.mappath(topicfile&upname.name))
  752. end if
  753. end if
  754. next
  755. set folder=nothing
  756. set files=nothing
  757. set fso=nothing
  758. response.write"<script>abc.style.visibility = ""hidden"";</script>"
  759. if go="move" then
  760. call suc("","超过"&deltime&"天以前没有访问的文件已经被转移至"&del&"目录下 !","?action=uploadfile")
  761. else
  762. call suc("","超过"&deltime&"天以前没有访问的文件已经删除 !","?action=uploadfile")
  763. end if
  764. end if
  765. end sub
  766. '批量清理
  767. sub deluphalfyear
  768. dim go,deltime,fso,folder,files,upname
  769. go=request.form("go")
  770. deltime=request.form("deltime")
  771. if go="" and deltime="" then
  772. response.write"<form method=post>"
  773. call showtable("批量清理多少天以前上传的文件","<input name='go' type='radio' value='move' checked=""true""> 移动到<font color=red>"&del&"</font>目录中(为防止误删除,查看无错后再删除这个目录即可)<br /><input name='go' type='radio' value='del'> 直接从空间删除 <hr>清理在<input name='deltime' type='text' size=4 value='180'>天以前上传的文件 <input value=' 确 定 ' type=submit></form>")
  774. else
  775. if not isnumeric(deltime) then call goback("","天数必需用数字填写!"):exit sub
  776. call logintxt("正在处理文件")
  777. set fso=server.createobject("scripting.filesystemobject")
  778. if not fso.folderexists(server.mappath(del)) then fso.createfolder(server.mappath(del))
  779. set folder=fso.getfolder(server.mappath(topicfile))
  780. set files=folder.files
  781. for each upname in files
  782. if datediff("d",upname.datecreated,now)>deltime then
  783. if go="move" then
  784. fso.movefile server.mappath(topicfile&upname.name),server.mappath(del&upname.name)
  785. else
  786. fso.deletefile(server.mappath(topicfile&upname.name))
  787. end if
  788. end if
  789. next
  790. set folder=nothing
  791. set files=nothing
  792. set fso=nothing
  793. response.write"<script>abc.style.visibility = ""hidden"";</script>"
  794. if go="move" then
  795. call suc("","在"&deltime&"天以前上传的文件已经被转移至"&del&"目录下 !","?action=uploadfile")
  796. else
  797. call suc("","在"&deltime&"天以前上传的文件已经删除!","?action=uploadfile")
  798. end if
  799. end if
  800. end sub
  801. '删除所选
  802. sub deloptfile
  803. dim filename,fso,folder,files,upname,temp,i
  804. filename=request("filename")
  805. if filename="" then call goback("","请先选择项目。"):exit sub
  806. temp=split(filename,",")
  807. for i=0 to ubound(temp)
  808. yxbbs.execute("delete * from [yx_upfile] where filename='"&trim(temp(i))&"'")
  809. next
  810.     set fso = server.createobject("scripting.filesystemobject")
  811. set folder=fso.getfolder(server.mappath(topicfile))
  812. set files=folder.files
  813. for each upname in files
  814. if instr(filename,upname.name)>0 then
  815.         fso.deletefile(server.mappath(topicfile&upname.name))
  816. end if
  817. next
  818. set folder=nothing
  819. set files=nothing
  820. set fso=nothing
  821. call suc("","成功删除了所选的文件。","?action=uploadfile")
  822. end sub
  823. '清除无用
  824. sub delall
  825. call logintxt("正在处理文件")
  826. dim fso,folder,files,upname,bbsfiles,go
  827. bbsfiles=request.form("files")
  828. go=request.form("go")
  829. if bbsfiles="" then bbsfiles="0"
  830. set fso=server.createobject("scripting.filesystemobject")
  831. if not fso.folderexists(server.mappath(del)) then fso.createfolder(server.mappath(del))
  832. set folder=fso.getfolder(server.mappath(topicfile))
  833. set files=folder.files
  834. for each upname in files
  835. if instr(bbsfiles,upname.name)<=0 then
  836. yxbbs.execute("delete * from [yx_upfile] where filename='"&upname.name&"'")
  837. if go="move" then
  838. fso.movefile server.mappath(topicfile&upname.name),server.mappath(del&upname.name)
  839. else
  840. fso.deletefile(server.mappath(topicfile&upname.name))
  841. end if
  842. end if
  843. next
  844. set folder=nothing
  845. set files=nothing
  846. set fso=nothing
  847. response.write"<script>abc.style.visibility = ""hidden"";</script>"
  848. if go="move" then
  849. call suc("","无用的上传文件已经被转移至"&del&"目录下 !","?action=uploadfile")
  850. else
  851. call suc("","无用的上传文件已经删除 !","?action=uploadfile")
  852. end if
  853. end sub
  854. function tblist(num)
  855. dim alltable,i,temp
  856. alltable=split(yxbbs.bbstable(0),",")
  857. for i=0 to ubound(alltable)
  858. if int(alltable(i))=int(num) then
  859. temp=temp&"【<font color=red>数据表"&alltable(i)&"</font>】"
  860. else
  861. temp=temp&"【<a href='?action=tbinfo&tb="&alltable(i)&"'>数据表"&alltable(i)&"</a>】"
  862. end if
  863. next
  864. tblist=temp
  865. end function
  866. sub recycle()
  867. %>
  868. <form name='yimxu'  style='margin:0' method='post' action='?action=submit'>
  869. <div class="ta">
  870. <div class="th jz">帖 子 回 收 站</div>
  871. <div class="tf w770" style="text-align: left;">【<a href="?action=recycle"><font color="red">列出全部主题</font></a>】<%=tblist(0)%> 【<a onclick=checkclick('您确定要清空回收站的全部帖子吗?') href="?action=recycledelall"><img src="../images/del.gif" width="18" height="18" border="0" align="absmiddle" />清空回收站</a>】</div>
  872. <div class="td3 jz w87">选择</div>
  873. <div class="td3 jz w332">帖子</div>
  874. <div class="td3 jz w106">作者</div>
  875. <div class="td3 jz w219">最后时间</div>
  876. <%
  877. dim intpagenow,arr_rs,i,pages,conut,page,strpageinfo
  878. dim temp,bbsid
  879. intpagenow = request.querystring("page")
  880. set pages = new cls_pageview
  881. pages.strtablename = "[yx_topic]"
  882. pages.strpageurl = "?action=recycle"
  883. pages.strfieldslist = "topicid,sqltableid,caption,name,lasttime,boardid"
  884. pages.strcondiction = "isdel=true"
  885. pages.strorderlist = "topicid desc"
  886. pages.strprimarykey = "topicid"
  887. pages.intpagesize = 25
  888. pages.intpagenow = intpagenow
  889. pages.strcookiesname = "recycle"&yxbbs.tb'客户端记录总数
  890. pages.reloadtime=3'每三分钟更新cookies
  891. pages.strpagevar = "page"
  892. pages.initclass
  893. arr_rs = pages.arrrecordinfo
  894. strpageinfo = pages.strpageinfo
  895. set pages = nothing
  896. if isarray(arr_rs) then
  897. for i = 0 to ubound(arr_rs, 2)
  898. set rs=yxbbs.execute("select bbsid from[yx_bbs"&arr_rs(1,i)&"] where topicid="&arr_rs(0,i)&" and boardid="&arr_rs(5,i))
  899. if not rs.eof then bbsid=rs(0)
  900. rs.close
  901. response.write"<div class=""td3 jz h20 w87""><input type='checkbox' name='topic' value='"&arr_rs(0,i)&"|"&arr_rs(5,i)&"|"&arr_rs(1,i)&"'></div>"&_
  902. "<div class=""td3 h20 w332"" style=""text-align: left;"">&nbsp;"&_
  903. "<a href=?action=seerecycle&bbsid="&bbsid&">"&yxbbs.fun.strleft(arr_rs(2,i),35)&"</a></div>"&_
  904. "<div class=""td3 h20 w106""><a target=_blank  href='../profile.asp?name="&arr_rs(3,i)&"' title='查看 "&arr_rs(3,i)&" 的资料'>"&arr_rs(3,i)&"</a></div>"&_
  905. "<div class=""td3 h20 w219"">"&arr_rs(4,i)&"</div>"
  906. next
  907. else
  908. response.write"<div style=""clear: both;""></div><div class=""tf jz w770"">这个数据表中没有发现被删除的帖子</div>"
  909. end if
  910. %>
  911. <div style="clear: both;"></div><div class="td w772" style="text-align: left;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=checkbox name=chkall value=on onclick="checkall(this.form)"> 全选
  912. &nbsp;&nbsp;<input type="submit"  value="删除所选" name="go"><input type="submit" class="submit" value="还原所选" name="go">
  913. </div>
  914. <div style="clear: both;"></div><div class="tf jz w770"><%=strpageinfo%></div></div></form>
  915. <%
  916. end sub
  917. sub seerecycle()
  918. dim bbsid,yxbbs_ubb,essaytype,sql
  919. bbsid=trim(request.querystring("bbsid"))
  920. set rs=yxbbs.execute("select bbsid,caption,content,name,lasttime,boardid,topicid,replytopicid,ubbstring from [yx_bbs"&yxbbs.tb&"] where bbsid="&bbsid)
  921. if rs.eof then 
  922. call goback("","该帖不存在或者已经被永久删除")
  923. exit sub
  924. end if
  925. if rs(7)=0 then essaytype="主题帖:" else essaytype="回复帖:"
  926. set yxbbs_ubb=new yxbbsubb_cls
  927. yxbbs_ubb.ubbstring=rs(8)
  928. %>
  929. <div class="ta">
  930. <div class="th jz">回收站 查看帖子</div>
  931. <div class="td1 jz"><%=essaytype&yxbbs.fun.htmlcode(rs(1))%></div>
  932. <div class="td2 jz">【<a href="?action=delrecycle&bbsid=<%=rs(0)%>&topicid=<%=rs(6)%>&tb=<%=yxbbs.tb%>"><img src="../images/del.gif" width="18" height="18" border="0" align="absmiddle" />永久删除</a>】 【<a href="?action=giveback&bbsid=<%=rs(0)%>&tb=<%=yxbbs.tb%>&boardid=<%=rs(5)%>"><img src="../images/mail.gif" width="16" height="16" border="0" align="absmiddle" />还原帖子</a>】</div>
  933. <div class="td w772" style="text-align: left;">
  934. <%if rs(7)=0 then response.write "<br /><b>"&yxbbs.fun.htmlcode(rs(1))&"</b>"%>
  935. <br /><%=yxbbs_ubb.ubb(rs(2),1)%></div>
  936. <div class="td3 w770">&nbsp;帖子作者:<%=rs(3)%>&nbsp;&nbsp;更新时间:<%=rs(4)%></div>
  937. <div style="clear: both;"></div><div class="tf jz"><a href=javascript:history.go(-1)>【返回】</a></div>
  938. </div>
  939. <%set yxbbs_ubb=nothing
  940. rs.close
  941. end sub
  942. sub tbinfo()
  943. response.write"<form name='yimxu' style='margin:0' method='post' action='?action=submit'>"
  944. %>
  945. <div class="ta">
  946. <div class="th jz">回收站</div>
  947. <div class="tf w770" style="text-align: left;">【<a href="?action=recycle">列出全部主题</a>】<%=tblist(yxbbs.tb)%> 【<a onclick=checkclick('您确定要清空回收站的全部帖子吗?') href="?action=recycledelall"><img src="../images/del.gif" width="18" height="18" border="0" align="absmiddle" />清空回收站</a>】</div>
  948. <div class="td3 jz w87">选择</div>
  949. <div class="td3 jz w332">帖子</div>
  950. <div class="td3 jz w106">作者</div>
  951. <div class="td3 jz w219">最后时间</div>
  952. <%
  953. dim intpagenow,arr_rs,i,pages,conut,page,strpageinfo
  954. dim temp
  955. intpagenow = request.querystring("page")
  956. set pages = new cls_pageview
  957. pages.strtablename = "[yx_bbs"&yxbbs.tb&"]"
  958. pages.strpageurl = "?action=tbinfo&tb="&yxbbs.tb
  959. pages.strfieldslist = "bbsid,topicid,caption,name,lasttime,replytopicid,boardid"
  960. pages.strcondiction = "isdel=true"
  961. pages.strorderlist = "bbsid desc"
  962. pages.strprimarykey = "bbsid"
  963. pages.intpagesize = 25
  964. pages.intpagenow = intpagenow
  965. pages.strcookiesname = "recycle"&yxbbs.tb'客户端记录总数
  966. pages.reloadtime=3'每三分钟更新cookies
  967. pages.strpagevar = "page"
  968. pages.initclass
  969. arr_rs = pages.arrrecordinfo
  970. strpageinfo = pages.strpageinfo
  971. set pages = nothing
  972. if isarray(arr_rs) then
  973. for i = 0 to ubound(arr_rs, 2)
  974. response.write"<div class=""td3 jz w87""><input type='checkbox' "
  975. if arr_rs(1,i)=0 then
  976. response.write "name='reply' value='"&arr_rs(0,i)&"|"&arr_rs(5,i)&"|"&arr_rs(6,i)&"|"&yxbbs.tb&"'"
  977. else
  978. response.write "name='topic' value='"&arr_rs(1,i)&"|"&arr_rs(6,i)&"|"&yxbbs.tb&"'"
  979. end if
  980. response.write"></div>"&_
  981. "<div class=""td3 jz w332"" style=""text-align: left;"">&nbsp;"&_
  982. "<a href=?action=seerecycle&bbsid="&arr_rs(0,i)&">"&yxbbs.fun.strleft(arr_rs(2,i),35)&"</a></div>"&_
  983. "<div class=""td3 jz w106""><a target=_blank  href='../profile.asp?name="&arr_rs(3,i)&"' title='查看 "&arr_rs(3,i)&" 的资料'>"&arr_rs(3,i)&"</a></div>"&_
  984. "<div class=""td3 jz w219"">"&arr_rs(4,i)&"</div>"
  985. next
  986. else
  987. response.write"<div style=""clear: both;""></div><div class=""tf jz w770"">这个数据表中没有发现被删除的帖子</div>"
  988. end if
  989. %>
  990. <div style="clear: both;"></div><div class="td w772" style="text-align: left;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=checkbox name=chkall value=on onclick="checkall(this.form)"> 全选
  991. &nbsp;&nbsp;<input type="submit"  value="删除所选" name="go"><input type="submit" class="submit" value="还原所选" name="go">
  992. </div>
  993. <div style="clear: both;"></div><div class="tf jz w770"><%=strpageinfo%></div></div></form>
  994. <%
  995. end sub
  996. sub delrecycle()
  997. dim bbsid,topicid
  998. bbsid=request.querystring("bbsid")
  999. topicid=request.querystring("topicid")
  1000. if topicid=0 then
  1001. yxbbs.execute("delete from [yx_bbs"&yxbbs.tb&"] where isdel=true and bbsid="&bbsid)
  1002. call suc("","成功删除了这个回复帖!","?action=recycle")
  1003. else
  1004. yxbbs.execute("delete from [yx_topic] where  isdel=true and topicid="&topicid)
  1005. yxbbs.execute("delete from [yx_topicvote] where topicid="&topicid)
  1006. yxbbs.execute("delete from [yx_topicvoteuser] where topicid="&topicid)
  1007. yxbbs.execute("delete from [yx_bbs"&yxbbs.tb&"] where isdel=true and (bbsid="&bbsid&" or replytopicid="&topicid&")")
  1008. call suc("","成功删除这个主题(包括其回复帖)!","?action=recycle")
  1009. end if
  1010. end sub
  1011. sub recycledelall()
  1012. dim alltable,i
  1013. alltable=split(yxbbs.bbstable(0),",")
  1014. for i=0 to ubound(alltable)
  1015. yxbbs.execute("delete from [yx_bbs"&alltable(i)&"] where isdel=true")
  1016. next
  1017. yxbbs.execute("delete from [yx_topic] where isdel=true")
  1018. yxbbs.execute("delete * from [yx_topicvote] where  not exists (select name from [yx_topic] where [yx_topicvote].topicid=[yx_topic].topicid)")
  1019. yxbbs.execute("delete * from [yx_topicvoteuser] where  not exists (select name from [yx_topic] where [yx_topicvoteuser].topicid=[yx_topic].topicid)")
  1020. call suc("","成功清空了回收站!","?action=recycle")
  1021. end sub
  1022. sub giveback
  1023. dim bbsid,topicid,replytopicid,boardid,temp
  1024. bbsid=request.querystring("bbsid")
  1025. set rs=yxbbs.execute("select topicid,replytopicid,boardid,isdel from[yx_bbs"&yxbbs.tb&"] where bbsid="&bbsid)
  1026. if rs.eof then
  1027. call goback("","该帖不存在或者已经被永久删除"):exit sub
  1028. elseif rs(3)=false then
  1029. call suc("","该帖已经恢复了","?action=recycle"):exit sub
  1030. end if
  1031. if rs(0)=0 and rs(1)<>0 then
  1032. yxbbs.execute("update [yx_config] set allessaynum=allessaynum+1")
  1033. yxbbs.execute("update [yx_board] set essaynum=essaynum+1 where boardid="&rs(2)&" and parentid<>0")
  1034. yxbbs.execute("update [yx_topic] set replynum=replynum+1,isdel=false where topicid="&rs(1))
  1035. yxbbs.execute("update [yx_bbs"&yxbbs.tb&"] set isdel=false where topicid="&rs(1)&" or bbsid="&bbsid)
  1036. else
  1037. temp=yxbbs.execute("select count(bbsid) from[yx_bbs"&yxbbs.tb&"] where replytopicid="&rs(0)&" and boardid="&rs(2))(0)
  1038. if isnull(temp) then temp=0
  1039. yxbbs.execute("update [yx_config] set topicnum=topicnum+1,allessaynum=allessaynum+"&temp+1&"")
  1040. yxbbs.execute("update [yx_board] set essaynum=essaynum+"&temp+1&",topicnum=topicnum+1 where boardid="&rs(2)&" and parentid<>0")
  1041. yxbbs.execute("update [yx_topic] set replynum="&temp&",isdel=false where topicid="&rs(0))
  1042. yxbbs.execute("update [yx_bbs"&yxbbs.tb&"] set isdel=false where bbsid="&bbsid&" or replytopicid="&rs(0))
  1043. end if
  1044. rs.close
  1045. call suc("","成功的恢复帖子","?action=recycle")
  1046. end sub
  1047. sub submit()
  1048. dim topic,reply,go,temp,i
  1049. topic=request.form("topic")
  1050. reply=request.form("reply")
  1051. if topic="" and reply="" then call goback("","请先选择项目。"):exit sub
  1052. topic=split(topic,",")
  1053. reply=split(reply,",")
  1054. go=request.form("go")
  1055. if go="删除所选" then
  1056. for i=0 to ubound(topic)
  1057. temp=split(topic(i),"|")
  1058. yxbbs.execute("delete from [yx_bbs"&temp(2)&"] where topicid="&temp(0)&" or replytopicid="&temp(0))
  1059. yxbbs.execute("delete from [yx_topic] where topicid="&temp(0))
  1060. yxbbs.execute("delete from [yx_topicvote] where topicid="&temp(0))
  1061. yxbbs.execute("delete from [yx_topicvoteuser] where topicid="&temp(0))
  1062. next
  1063. for i=0 to ubound(reply)
  1064. temp=split(reply(i),"|")
  1065. yxbbs.execute("delete from [yx_bbs"&temp(3)&"] where bbsid="&temp(0)&" and isdel=true")
  1066. next
  1067. call suc("","成功的删除所选的帖子","?action=recycle")
  1068. elseif go="还原所选" then
  1069. dim tempnum
  1070. for i=0 to ubound(topic)
  1071. temp=split(topic(i),"|")
  1072. tempnum=yxbbs.execute("select count(bbsid) from[yx_bbs"&temp(2)&"] where replytopicid="&temp(0)&" and boardid="&temp(1))(0)
  1073. if isnull(tempnum) then tempnum=0
  1074. yxbbs.execute("update [yx_config] set topicnum=topicnum+1,allessaynum=allessaynum+"&tempnum+1&"")
  1075. yxbbs.execute("update [yx_board] set essaynum=essaynum+"&tempnum+1&",topicnum=topicnum+1 where boardid="&temp(1)&" and parentid<>0")
  1076. yxbbs.execute("update [yx_topic] set replynum="&tempnum&",isdel=false where topicid="&temp(0))
  1077. yxbbs.execute("update [yx_bbs"&temp(2)&"] set isdel=false where topicid="&temp(0)&" or replytopicid="&temp(0))
  1078. next
  1079. for i=0 to ubound(reply)
  1080. temp=split(reply(i),"|")
  1081. set rs=yxbbs.execute("select top 1 bbsid from[yx_bbs"&temp(3)&"] where bbsid="&temp(0)&" and isdel=true")
  1082. if not rs.eof then
  1083. yxbbs.execute("update [yx_config] set allessaynum=allessaynum+1")
  1084. yxbbs.execute("update [yx_board] set essaynum=essaynum+1 where boardid="&temp(2)&" and parentid<>0")
  1085. yxbbs.execute("update [yx_topic] set replynum=replynum+1,isdel=false where topicid="&temp(1))
  1086. yxbbs.execute("update [yx_bbs"&temp(3)&"] set isdel=false where topicid="&temp(1)&" or bbsid="&temp(0))
  1087. end if
  1088. rs.close
  1089. next
  1090. call suc("","成功的还原所选的帖子","?action=recycle")
  1091. end if
  1092. end sub
  1093. %>
  1094. <script language="javascript">
  1095. <!--
  1096. function checkall(form){
  1097.   for (var i=0;i<form.elements.length;i++){
  1098.     var e = form.elements[i];
  1099.     if (e.name != 'chkall'){
  1100. e.checked = form.chkall.checked;}
  1101. }
  1102.   }
  1103. //-->
  1104. </script>