2007年9月21日
每天都有那么多的垃圾引用,都是广告,后台删除吧,还得一条条的,刚刚在后台找到了一篇“z-blog中垃圾引用批量删除功能的增加 ”,总算是好多了,现转载如下:
分析过程如下:
1、z-blog后台“引用管理”的链接为cmd.asp?act=TrackBackMng,于是打开cmd.asp,发现又转到了admin.asp,相关代码如下:
Case "TrackBackMng"
Call TrackBackMng()
...........
Function TrackBackMng
Response.Redirect "admin.asp?act=TrackBackMng&page=" & Request.QueryString("id") & "&searchtext=" & Server.URLEnCode(Request.QueryString("searchtext"))
End Function
End Function
2、打开admin.asp,发现是调用了函数ExportTrackBackList(),相关代码如下:
Case "TrackBackMng" Call ExportTrackBackList(Request.QueryString("page"))
用macromedia的文件夹搜索或者一一打开admin.asp的包含文件,发现这一函数在c_system_manage.asp中
3、打开c_system_manage.asp,找到function exporttrackbacklist
经过扩充改为以下代码(其中蓝色粗体的为增加部分,黑色的为原来代码)
<script language="JavaScript">
function dyj() {
for (var i=0;i<document.tcdel.tcid.length;i++) {
var e=document.tcdel.tcid[i];
e.checked=!e.checked;
}
}
</script>
function dyj() {
for (var i=0;i<document.tcdel.tcid.length;i++) {
var e=document.tcdel.tcid[i];
e.checked=!e.checked;
}
}
</script>
以上这一段放在文件最顶端
以下是Function ExportTrackBackList(intPage)中的修改
response.write "<table width=""100%"" cellspacing=""0"" cellpadding=""0"" border=""0""><tr><td valign=top>"
Response.Write "<table border=""1"" width=""100%"" cellspacing=""0"" cellpadding=""0"">"
Response.Write "<tr><td></td><td>"& ZC_MSG048 & ZC_MSG076 &"</td><td>"& ZC_MSG014 &"</td><td>"& ZC_MSG060 &"</td><td>"& ZC_MSG055
Response.Write "<tr><td></td><td>"& ZC_MSG048 & ZC_MSG076 &"</td><td>"& ZC_MSG014 &"</td><td>"& ZC_MSG060 &"</td><td>"& ZC_MSG055
&"</td><td>"& ZC_MSG063 &"</td></tr>"
objRS.Open("Select * FROM [blog_TrackBack] "& strSQL &" orDER BY [tb_ID] DESC")
objRS.PageSize=ZC_MANAGE_COUNT
If objRS.PageCount>0 Then objRS.AbsolutePage = intPage
If (Not objRS.bof) And (Not objRS.eof) Then
For i=1 to objRS.PageSize
Response.Write "<tr>"
Response.Write "<td><input type='checkbox' disabled='true'></td>"
Response.Write "<td>" & objRS("log_ID") & "</td>"
Response.Write "<td><a title="""& objRS("tb_Title") &""" target=""_blank"" href="""&objRS("tb_Url")&""">" _fcksavedurl=""""&objRS("tb_Url")&""">"" & Left(objRS("tb_Blog"),14)
Response.Write "<td><input type='checkbox' disabled='true'></td>"
Response.Write "<td>" & objRS("log_ID") & "</td>"
Response.Write "<td><a title="""& objRS("tb_Title") &""" target=""_blank"" href="""&objRS("tb_Url")&""">" _fcksavedurl=""""&objRS("tb_Url")&""">"" & Left(objRS("tb_Blog"),14)
& "</a></td>"
Response.Write "<td><a href="""& ZC_BLOG_HOST & "view.asp?id=" & objRS("log_ID") & "#tb" & objRS("tb_ID") & """ target=""_blank"">" &
Response.Write "<td><a href="""& ZC_BLOG_HOST & "view.asp?id=" & objRS("log_ID") & "#tb" & objRS("tb_ID") & """ target=""_blank"">" &
Left(objRS("tb_Title"),12) & "</a></td>"
Response.Write "<td>" & Left(objRS("tb_Excerpt"),18) & "</td>"
Response.Write "<td align=""center""><a href=""cmd.asp?act=TrackBackDel&id=" & objRS("tb_ID") & "&log_id="& objRS("log_ID") &"""
Response.Write "<td>" & Left(objRS("tb_Excerpt"),18) & "</td>"
Response.Write "<td align=""center""><a href=""cmd.asp?act=TrackBackDel&id=" & objRS("tb_ID") & "&log_id="& objRS("log_ID") &"""
onclick='return window.confirm(""" & ZC_MSG058 & """);'>["& ZC_MSG063 &"]</a></td>"
Response.Write "</tr>"
Response.Write "</tr>"
objRS.MoveNext
If objRS.eof Then Exit For
If objRS.eof Then Exit For
Next
End If
Response.Write "</table>"
Response.Write "</table>"
response.write "</td><td valign=top>"
Response.Write "<form method=""post"" action="""" name=""tcdel"">"
response.write "<table border=""1"" width=""100%"" cellspacing=""0"" cellpadding=""0"">"
Response.Write "<tr><td><a href='javascript:dyj()'>选择</a></td></tr>"
If (Not objRS.bof) Then
objrs.movefirst
For i=1 to objRS.PageSize
Response.Write "<tr>"
Response.Write "<td><input type='checkbox' name='tcid' value="&objRS("tb_id")&"></td>"
Response.Write "</tr>"
objRS.MoveNext
If objRS.eof Then Exit For
Next
end if
response.write "</table></td></tr></table>"
Response.Write "<p><input class=""button"" type=""submit"" value=""删除所选引用"" id=""tbdel"" name=""tbdel""/></p>"
Response.Write "</form>"
if request.form("tbdel")="删除所选引用" then
if request.form("tcid")="" then
response.write "<script>alert('未选择要删除的!');history.back(1)</script>"
response.end
else
objconn.execute("delete from blog_TrackBack where tb_id in("&request("tcid")&")")
objconn.close
set objconn=nothing
response.redirect "cmd.asp?act=TrackBackMng"
end if
end if
Response.Write "<form method=""post"" action="""" name=""tcdel"">"
response.write "<table border=""1"" width=""100%"" cellspacing=""0"" cellpadding=""0"">"
Response.Write "<tr><td><a href='javascript:dyj()'>选择</a></td></tr>"
If (Not objRS.bof) Then
objrs.movefirst
For i=1 to objRS.PageSize
Response.Write "<tr>"
Response.Write "<td><input type='checkbox' name='tcid' value="&objRS("tb_id")&"></td>"
Response.Write "</tr>"
objRS.MoveNext
If objRS.eof Then Exit For
Next
end if
response.write "</table></td></tr></table>"
Response.Write "<p><input class=""button"" type=""submit"" value=""删除所选引用"" id=""tbdel"" name=""tbdel""/></p>"
Response.Write "</form>"
if request.form("tbdel")="删除所选引用" then
if request.form("tcid")="" then
response.write "<script>alert('未选择要删除的!');history.back(1)</script>"
response.end
else
objconn.execute("delete from blog_TrackBack where tb_id in("&request("tcid")&")")
objconn.close
set objconn=nothing
response.redirect "cmd.asp?act=TrackBackMng"
end if
end if
其中Response.Write "<td><input type='checkbox' disabled='true'></td>"只是为了两个表格的完全对齐,无意义
为什么不采用一个表单的方法呢,因为原来的表单method为get,不能获取表单信息,如果将get更改为post后会影响原来的“搜索关键字”功能,要改动的地方就多了。所以采取变通的方法,再设置一个表单tcdel,method为post,原来的表单放在增加的表格的一个单元格中,新增加的表单放在增加的表格的另外一个单元格中,为了两个单元格中的内容完全对齐多加了句Response.Write "<td><input type='checkbox' disabled='true'></td>",
米啦啦鲜花礼品网专注于鲜花市场速递服务,网上支付、连锁鲜花礼品销售,提供高质量鲜花服务。主要经营爱情鲜花,生日鲜花,探亲访友,婚礼庆典,友情鲜花,节日鲜花。
顶一个!!!