⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 update.asp

📁 公司企业网站管理系统全站源码,用于企业内部对网站的管理
💻 ASP
📖 第 1 页 / 共 4 页
字号:
<!--#include file="../conn.asp"-->
<!--#include file="inc/const.asp"-->
<!--#include file="../inc/dv_clsother.asp"-->
<!--#include file="../inc/ubblist.asp"-->
<%
Head()
Server.ScriptTimeout=9999999
dim admin_flag 
admin_flag=Split("14,20",",")
CheckAdmin(","&admin_flag(0)&",")
CheckAdmin(","&admin_flag(1)&",")

Dim tmprs,body
Call main()
Footer()

sub main()
Dim i
%>
<table cellpadding="0" cellspacing="0" border="0" width="100%" align="center">
<tr>
<th style="text-align:center;" colspan=2>论坛数据处理</th>
</tr>
<tr>
<td width="20%" class="td1" height=25>注意事项</td>
<td width="80%" class="td1">下面有的操作可能将非常消耗服务器资源,而且更新时间很长,请仔细确认每一步操作后执行。</td>
</tr>
<%
	If request("action")="updat" Then
		If request("submit")="更新分版面数据" Then
			call updateboard()
		ElseIf request("submit")="修 复" Then
			call fixtopic()
		ElseIf request("submit")="清空在线用户" Then
			call Delallonline()
		ElseIf request("submit")="更新收藏夹" Then
			call Updatebm()
		Else
			call updateall()
		End If
		If founderr Then
			response.write errmsg
		Else
			response.write body
		End If
	ElseIf request("action")="fix"  Then
		Call Fixbbs()
		If founderr Then
			response.write errmsg
		Else
			response.write body
		End If
	ElseIf request("action")="delboard" then
		if isnumeric(request("boardid")) then
		Dvbbs.Execute("update dv_topic set boardid=444 where boardid="&request("boardid"))
		for i=0 to ubound(AllPostTable)
		Dvbbs.Execute("update "&AllPostTable(i)&" set boardid=444 where boardid="&request("boardid"))
		next
		end if
		response.write "<tr><td align=left colspan=2 height=23 class=td1>清空论坛数据成功,请返回更新帖子数据!</td></tr>"
	elseif request("action")="updateuser" then
%>
<FORM METHOD=POST ACTION="?action=updateuserinfo">
<tr> 
<th style="text-align:center;" colspan=2>更新用户数据</th>
</tr>
<tr>
<td width="20%" class="td1">重新计算用户发贴</td>
<td width="80%" class="td1">执行本操作将按照<font color=red>当前论坛数据库</font>发贴重新计算所有用户发表帖子数量。</td>
</tr>
<tr>
<td width="20%" class="td1">开始用户ID</td>
<td width="80%" class="td1"><input type=text name="beginID" value="1" size=10>&nbsp;用户ID,可以填写您想从哪一个ID号开始进行修复</td>
</tr>
<tr>
<td width="20%" class="td1">结束用户ID</td>
<td width="80%" class="td1"><input type=text name="endID" value="100" size=10>&nbsp;将更新开始到结束ID之间的用户数据,之间的数值最好不要选择过大</td>
</tr>
<tr>
<td width="20%" class="td1">&nbsp;</td>
<td width="80%" class="td1"><input type="submit" class="button" name="Submit" value="重新计算用户发贴"></td>
</tr>
</form>

<FORM METHOD=POST ACTION="?action=updateuserinfo">
<tr>
<td width="20%" class="td1" valign=top>更新用户等级</td>
<td width="80%" class="td1">执行本操作将按照<font color=red>当前论坛数据库</font>用户发贴数量和论坛的等级设置重新计算用户等级,本操作不影响等级为贵宾、版主、总版主的数据。</td>
</tr>
<tr>
<td width="20%" class="td1">开始用户ID</td>
<td width="80%" class="td1"><input type=text name="beginID" value="1" size=10>&nbsp;用户ID,可以填写您想从哪一个ID号开始进行修复</td>
</tr>
<tr>
<td width="20%" class="td1">结束用户ID</td>
<td width="80%" class="td1"><input type=text name="endID" value="100" size=10>&nbsp;将更新开始到结束ID之间的用户数据,之间的数值最好不要选择过大</td>
</tr>
<tr>
<td width="20%" class="td1">&nbsp;</td>
<td width="80%" class="td1"><input type="submit" class="button" name="Submit" value="更新用户等级"></td>
</tr>
</form>

<FORM METHOD=POST ACTION="?action=updateuserinfo">
<tr>
<td width="20%" class="td1" valign=top>更新用户金钱/经验/魅力</td>
<td width="80%" class="td1">执行本操作将按照<font color=red>当前论坛数据库</font>用户的发贴数量和论坛的相关设置重新计算用户的金钱/经验/魅力,本操作也将重新计算贵宾、版主、总版主的数据<BR>注意:不推荐用户进行本操作,本操作在数据很多的时候请尽量不要使用,并且本操作对各个版面删除帖子等所扣相应分值不做运算,只是按照发贴和总的论坛分值设置进行运算,请大家慎重操作,<font color=red>而且本项操作将重置用户因为奖励、惩罚等原因管理员对用户分值的修改。</font></td>
</tr>
<tr>
<td width="20%" class="td1">开始用户ID</td>
<td width="80%" class="td1"><input type=text name="beginID" value="1" size=10>&nbsp;用户ID,可以填写您想从哪一个ID号开始进行修复</td>
</tr>
<tr>
<td width="20%" class="td1">结束用户ID</td>
<td width="80%" class="td1"><input type=text name="endID" value="100" size=10>&nbsp;将更新开始到结束ID之间的用户数据,之间的数值最好不要选择过大</td>
</tr>
<tr>
<td width="20%" class="td1">&nbsp;</td>
<td width="80%" class="td1"><input type="submit" class="button" name="Submit" value="更新用户金钱/经验/魅力"></td>
</tr>
</FORM>
<%
	elseif request("action")="updateuserinfo" then
		if request("submit")="重新计算用户发贴" then
		call updateTopic()
		elseif request("submit")="更新用户等级" then
		call updategrade()
		else
		call updatemoney()
		end if
		if founderr then
		response.write errmsg
		else
		response.write body
		end if
	else
	'主题数,帖子数,用户数,今日贴,昨日贴,总固顶,最后注册
%>
<tr> 
<th style="text-align:center;" colspan=2>更新论坛数据</th>
</tr>

<form action="update.asp?action=updat" method=post>
<tr>
<td width="20%" class="td2">更新总论坛数据</td>
<td width="80%" class="td2">
<input type="checkbox" class="checkbox" name="u1" value="1">
主题数
<input type="checkbox" class="checkbox" name="u2" value="1">
帖子数
<input type="checkbox" class="checkbox" name="u3" value="1">
用户数
<input type="checkbox" class="checkbox" name="u4" value="1" checked>
今日帖
<input type="checkbox" class="checkbox" name="u5" value="1" checked>
昨日帖
<input type="checkbox" class="checkbox" name="u6" value="1">
总固顶
<input type="checkbox" class="checkbox" name="u7" value="1">
最后注册
<BR><BR><input type="submit" class="button" name="Submit" value="更新论坛总数据"><BR><BR>这里将重新计算整个论坛的帖子主题和回复数,今日帖子,最后加入用户等,建议每隔一段时间运行一次。<hr size=1></td>
</tr>
<tr>
<td width="20%" class="td1">更新分版面数据</td>
<td width="80%" class="td1"><input type="submit" class="button" name="Submit" value="更新分版面数据"><BR><BR>这里将重新计算每个版面的帖子主题和回复数,今日帖子,最后回复信息等,建议每隔一段时间运行一次。<hr size=1>
</td>
</tr>
<tr>
<td width="20%" class="td2">更新论坛收藏夹</td>
<td width="80%" class="td2"><input type="submit" class="button" name="Submit" value="更新收藏夹"><BR><BR>这里将重新整理论坛的收藏夹,删除不存在用户的收藏记录,重新指向被移动的帖子收藏地址,删除已被删除的帖子收藏记录。
</td>
</tr>
<tr> 
<th style="text-align:center;" colspan=2>修复帖子(修复指定范围内帖子的最后回复数据)</th>
</tr>
<tr>
<td width="20%" class="td1">开始的ID号</td>
<td width="80%" class="td1"><input type=text name="beginID" value="1" size=10>&nbsp;帖子主题ID,可以填写您想从哪一个ID号开始进行修复</td>
</tr>
<tr>
<td width="20%" class="td2">结束的ID号</td>
<td width="80%" class="td2"><input type=text name="EndID" value="1000" size=10>&nbsp;将更新开始到结束ID之间的帖子数据,之间的数值最好不要选择过大</td>
</tr>
<tr>
<td width="20%" class="td1">&nbsp;</td>
<td width="80%" class="td1"><input type="submit" class="button" name="Submit" value="修 复"></td>
</tr>
</form>
<form name=Fix action="update.asp?action=fix" method=post>
<tr> 
<th style="text-align:center;" colspan=2>修正贴子UBB标签(修复指定范围贴子UBB标签)</th>
</tr>
<tr>
<td width="20%" class="td1">开始的ID号</td>
<td width="80%" class="td1"><input type=text name="beginID" value="1" size=10>&nbsp;帖子主题ID,可以填写您想从哪一个ID号开始进行修复</td>
</tr>
<tr>
<td width="20%" class="td2">结束的ID号</td>
<td width="80%" class="td2"><input type=text name="EndID" value="1000" size=10>&nbsp;将更新开始到结束ID之间的帖子数据,之间的数值最好不要选择过大</td>
</tr>
<tr>
<td width="20%" class="td1">新老贴的标识日期</td>
<td width="80%" class="td1"><input type="text" name="updatedate" value="2003-12-1">(格式:YYYY-M-D) 就是论坛升级到v7.0的日期,如果不填写,一律按老贴处理</td>
</tr>
<tr>
<td width="20%" class="td2">去掉贴子中的HTML标记</td>
<td width="80%" class="td2">是 <input type="radio" class="radio" name="killhtml" value="1">
  否 <input type="radio" class="radio" name="killhtml" value="0" checked>&nbsp;<br>选是的话,贴子中的HTML标记将会自动被清除,有利于减少数据库的大小,但是会失去原来的HTML效果。</td>
</tr>
<tr>
<td width="20%" class="td1">&nbsp;</td>
<td width="80%" class="td1"><input type="submit" class="button" name="Submit" value="修 正"></td>
</tr>
</form>

<%
	end if
%>
</table><BR><BR>
<%
	end sub

Sub updateboard()
	'先按照所有版面ID得出帖子数,然后计算各个有下属论坛的帖子总和
	Dim allarticle
	Dim alltopic
	Dim alltoday
	Dim allboard
	Dim trs,Esql,ars,rs,i
	Dim Maxid
	Dim LastTopic,LastRootid,LastPostTime,LastPostUser
	Dim LastPost,uploadpic_n,Lastpostuserid,Lastid
	Dim ParentStr
	Dim C,C1,C2
	Dim reBoard_Setting,BoardTopStr,IsGroupSetting
	Dim UserAccessCount,UpGroupSetting,ii
	Dim Slastpost
	ii=0
	'设置打开数据时间
	conn.CommandTimeout=3600

	'获得要更新的总数
	If IsNumeric(request("boardid")) And request("boardid")<>"" Then
		Set Rs=Dvbbs.Execute("Select Count(*) From [Dv_board] Where BoardID="&request("boardid"))
		C1=rs(0)
		If Isnull(C1) Then C1=0
	Else
		Set Rs=Dvbbs.Execute("Select Count(*) From [Dv_board]")
		C1=rs(0)
		If Isnull(C1) Then C1=0
	End If
	Set Rs=Nothing
%>
</table><BR>
<table cellpadding="0" cellspacing="0" border="0" width="100%" align="center">
<tr><td colspan=2 class=td1>
下面开始更新论坛版面资料,共有<%=C1%>个版面需要更新
<table width="400" border="0" cellspacing="1" cellpadding="1">
<tr> 
<td bgcolor=#000000>
<table width="400" border="0" cellspacing="0" cellpadding="1">
<tr> 
<td bgcolor=#ffffff height=9><img src="../skins/default/bar/bar3.gif" width=0 height=16 id=img2 name=img2 align=absmiddle></td></tr></table>
</td></tr></table> <span id=txt2 name=txt2 style="font-size:9pt">0</span><span style="font-size:9pt">%</span></td></tr>
</table>
<%
	Response.Flush

	'排序按照Child和Orders,以便先更新下级论坛的数据才循环到上级版面,这时上级版面读取的就是下级版面的最新数据
	If IsNumeric(request("boardid")) And request("boardid")<>"" Then
		Set Rs=Dvbbs.Execute("Select BoardID,BoardType,Child,ParentStr,RootID,Board_Setting,BoardTopStr,IsGroupSetting From Dv_Board Where BoardID="&Request("BoardID"))
	Else
		Call Boardchild()	'统计更新下属论坛个数 YZ-2004-2-26注
		Set Rs=Dvbbs.Execute("Select BoardID,BoardType,Child,ParentStr,RootID,Board_Setting,BoardTopStr,IsGroupSetting From Dv_Board Order by Child,RootID,Orders Desc")
	End If
	Dim SQL, LastPostArr 'LastPostArr XG增加2007-04-11
	If Not Rs.EOF Then 
		SQL=Rs.GetRows(-1)
		Set Rs=Nothing
		For i=0 to UBound(SQL,2)
	'Do While Not Rs.Eof
		
		reBoard_Setting=Split(SQL(5,i),",")
		AllBoard = 0
		'所有主题和帖子
		Set Trs=Dvbbs.Execute("Select Count(*),Sum(Child) From Dv_Topic Where BoardID="&SQL(0,i))
		AllTopic=Trs(0)
		AllArticle=Trs(1)
		If IsNull(AllTopic) Then AllTopic = 0
		If IsNull(AllArticle) Then AllArticle = 0
		AllArticle = AllArticle + AllTopic
		Set Trs=Nothing
		'所有今日贴
		If IsSqlDataBase = 1 Then
			Set Trs=Dvbbs.Execute("Select Count(*) From "&Dvbbs.NowUseBBS&" Where BoardID="&SQL(0,i)&" and datediff(d,dateandtime,"&SqlNowString&")=0")
		Else
			Set Trs=Dvbbs.Execute("Select Count(*) From "&Dvbbs.NowUseBBS&" Where BoardID="&SQL(0,i)&" and datediff('d',dateandtime,"&SqlNowString&")=0")
		End If
		AllToday=Trs(0)
		Set Trs=Nothing
		If IsNull(AllToday) Then AllToday=0
		'最后回复信息
		Set Trs=Dvbbs.Execute("Select Top 1 LastPost,TopicID,Title,PostTable From Dv_Topic Where BoardID="&SQL(0,i)&" Order by LastPostTime Desc")
		If Not (Trs.Eof And Trs.Bof) Then
			LastPostArr = Split(Trs(0),"$")
			If UBound(LastPostArr)<7 Then
				ReDim LastPostArr(7)
				LastPostArr(1)=Trs(3)
				LastPostArr(3)= Replace(cutStr(Trs(2),20),"$","&#36;")
				LastPostArr(6)=Trs(1)
				Trs.Close:Set Trs=Nothing
				Set Trs = Dvbbs.Execute("Select Top 1 AnnounceID,BoardID,UserName,DateAndTime,PostUserID From "&LastPostArr(1)&" Where RootID="&LastPostArr(6)&" Order by DateAndTime")
				If Not (Trs.Eof And Trs.Bof) Then
					LastPostArr(0) = Trs(2)
					LastPostArr(1) = Trs(0)
					LastPostArr(2) = Trs(3)
					LastPostArr(4) = ""
					LastPostArr(5) = Trs(4)
					LastPostArr(7) = Trs(1)
				Else
					LastPostArr(0) = "无"
					LastPostArr(1) = 0
					LastPostArr(2) = now()
					LastPostArr(3) = "无"
					LastPostArr(4) = ""
					LastPostArr(5) = ""
					LastPostArr(6) = ""
					LastPostArr(7) = ""
				End if
			Else
				LastPostArr(3)= Replace(cutStr(Trs(2),20),"$","&#36;")
			End if
			Trs.Close:Set Trs=Nothing
			LastPost=Join(LastPostArr,"$")
			LastPost=Replace(Dvbbs.Replacehtml(LastPost&""),"'","''")
			'LastPost=Replace(Dvbbs.Replacehtml(Trs(0)&""),"'","''")
		Else
			Trs.Close:Set Trs=Nothing
			LastPost="无$0$"&Now()&"$无$$$$"
		End If
		'更新当前版面数据
		'SLastPost = Split(LastPost,"$")
		'If Ubound(SLastPost) < 7 Then LastPost = LastPost & "$"
		Dvbbs.Execute("Update [Dv_board] Set PostNum="&AllArticle&",TopicNum="&AllTopic&",TodayNum="&AllToday&",LastPost='"&Dvbbs.ChkBadWords(LastPost)&"' Where BoardID="&SQL(0,i))
		'如果当前版面有下属论坛,则更新其数据为下属论坛数据
		If SQL(2,i)>0 Then
			'帖子总数,主题总数,今日贴总数,下属版面数
			If SQL(3,i)=0 Then
				ParentStr=SQL(0,i)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -