trackback.asp

来自「L-Blog是一套BLOG系统」· ASP 代码 · 共 173 行

ASP
173
字号
<!--#include file="commond.asp" -->
<!--#include file="include/function.asp" -->
<%
IF IsInteger(Request.QueryString("tbID")) And Request.QueryString("action")<>"deltb" Then
	Dim tbID,tbTitle,tbURL,tbExcerpt,tbBlog,tbCP
	tbID = CheckStr(Request.QueryString("tbID"))
	tbCP="UTF-8"
	If Trim(Request.QueryString("CP"))="GBK" Then tbCP="GB2312"
	If Trim(Request.QueryString("TM"))="RSS" Then
		Set tbBlog=Conn.Execute("SELECT tb_Title,tb_URL,tb_Intro FROM blog_Trackback WHERE blog_ID="&tbID)
		SQLQueryNums=SQLQueryNums+1
		If Not (tbBlog.BOF and tbBlog.EOF) Then
			Response.contentType="text/xml"
			%>
			<?xml version="1.0" encoding="<%=tbCP%>"?>
			<response>
			<error>0</error>
			<rss version="0.91"><channel>
			<title><%=SiteName%></title>
			<link><%=SiteURL%></link>
			<description><%=SiteName%></description>
			<language>zh-cn</language>
			<item>
			<% do while not tbBlog.eof %>
			<title><%=tbBlog(0)%></title>
			<link><%=tbBlog(1)%></link>
			<description><%=tbBlog(2)%></description>
			<% tbBlog.MoveNext
			Loop
		Else
			Call tbResponseXML(1,"无效参数,日志不存在!",tbCP)
		End If
		Set tbBlog=Nothing
		%>
		</item>
		</channel>
		</rss></response>
		<%
	Else
		'Trackback entry mode
		If Request.QueryString("url")<>Empty Then
			tbURL = CheckStr(Request.QueryString("url"))
			tbTitle = CheckStr(Request.QueryString("title"))
			tbExcerpt = HTMLEncode(CheckStr(Request.QueryString("excerpt")))
			tbBlog = CheckStr(Request.QueryString("blog_name"))
		ElseIf Request.Form("url")<>Empty Then
			tbURL = CheckStr(Request.Form("url"))
			tbTitle = CheckStr(Request.Form("title"))
			tbExcerpt = CheckStr(Request.Form("excerpt"))
			tbBlog = CheckStr(Request.Form("blog_name"))
		Else
			Call tbResponseXML(1,"无效参数,URL地址不存在!",tbCP)
		End If
		tbURL=CutStr(tbURL,100)
		if tbTitle="" Then
			tbTitle=tbURL
		Else
			tbTitle=CutStr(tbTitle,100)
		End If
		tbExcerpt=CutStr(tbExcerpt,252)
		If tbExcerpt="" Then Call tbResponseXML(1,"无效内容,出现非法字符!",tbCP)
		tbBlog=CutStr(tbBlog,100)

		'Check if allow trackback
		If Conn.Execute("SELECT count(log_ID) FROM blog_Content WHERE log_IsShow=True And log_DisComment=False AND log_ID="&tbID)(0)>0 AND Conn.Execute("SELECT count(tb_ID) FROM blog_Trackback WHERE blog_ID="&tbID&" AND tb_URL='"&tbURL&"' AND tb_Title='"&tbTitle&"' AND tb_Intro='"&tbExcerpt&"' AND tb_Site='"&tbBlog&"'")(0)<1 Then
			Conn.Execute("INSERT INTO blog_TrackBack (blog_ID, tb_URL, tb_Title, tb_Intro, tb_Site, tb_PostTime) VALUES ("&tbID&",'"&tbURL&"','"&tbTitle&"','"&tbExcerpt&"','"&tbBlog&"',Now())")
			Conn.Execute("UPDATE blog_Content SET log_QuoteNums=log_QuoteNums+1 WHERE log_ID="&tbID)
			Conn.ExeCute("UPDATE blog_Info SET blog_QuoteNums=blog_QuoteNums+1")
			SQLQueryNums=SQLQueryNums+2
		Else
			Call tbResponseXML(1,"此日志是隐藏日志不允许引用,或者此引用通告已发送!",tbCP)
		End If
		SQLQueryNums=SQLQueryNums+2
	End If
Else%>
<!--#include file="header.asp" -->
<table width="768" border="0" align="center" cellpadding="4" cellspacing="6" background="images/blog_main.gif">
  <tr>
    <td width="128" valign="top" bgcolor="#FFFFFF" nowrap align="center"><br>
<br>
<font color="#FF0000"><b>引用通告</b></font></td>
    <td><table width="98%" border="0" cellpadding="4" cellspacing="1">
        <tr>
          <td align="center">
					<%
					If Request.QueryString("action")="deltb" Then
						If Not (IsInteger(Request.QueryString("tbID")) AND IsInteger(Request.QueryString("logID"))) Then
							Response.write("无效参数, <a href='javascript:history.go(-1);'>请点击返回</a>")
						Else
							Dim dele_tb
							Set dele_tb=Conn.ExeCute("SELECT T.blog_ID,C.log_Author FROM blog_TrackBack as T,blog_Content as C WHERE T.blog_ID=C.log_ID AND T.tb_ID="&CheckStr(Request.QueryString("tbID")))
							SQLQueryNums=SQLQueryNums+1
							IF dele_tb.EOF AND dele_tb.BOF Then
								Response.write("引用通告不存在,<a href='javascript:history.go(-1);'>请点击返回</a>")
							Else
								If (memStatus="Admin" AND dele_tb("log_Author")=memName) or memStatus="SupAdmin" Then
									Conn.ExeCute("UPDATE blog_Content SET log_QuoteNums=log_QuoteNums-1 WHERE log_ID="&dele_tb("blog_ID"))
									Conn.ExeCute("UPDATE blog_Info SET blog_QuoteNums=blog_QuoteNums-1")
									Conn.Execute("DELETE * FROM blog_TrackBack WHERE tb_ID="&CheckStr(Request.QueryString("tbID")))
									SQLQueryNums=SQLQueryNums+3
									Response.write("引用通告删除成功<br><a href='blogview.asp?logID="&CheckStr(Request.QueryString("logID"))&"'>请点击返回,或者3秒后自动返回</a><meta http-equiv='refresh' content='3;url=blogview.asp?logID="&CheckStr(Request.QueryString("logID"))&"'>")
								Else
									Response.write("你没有权限删除引用通告,<a href='javascript:history.go(-1);'>请点击返回</a>")
								End If
							End IF
						End If
					Else
						If IsInteger(Request.QueryString("logID"))=False Then
							Response.Write("<a href=""default.asp"">非法参数,请返回主页</a>")
						Else
							Dim blogRS, tbRS
							Set blogRS=Conn.Execute("SELECT * FROM blog_Content WHERE log_ID="&CheckStr(Request.QueryString("logID")))
							SQLQueryNums=SQLQueryNums+1
							If Not (blogRS.bof and blogRS.eof) Then
								%>
								<table width="99%" border="0" align="center" cellpadding="8" cellspacing="1" bgcolor="#CCCCCC">
								<tr>
									<td bgcolor="#EFEFEF"><%
										Response.Write("<a href='blogview.asp?logID="&blogRS("log_ID")&"'><b>"&blogRS("log_Title")&"</b></a>&nbsp;&nbsp;&nbsp;[ "&DateToStr(blogRS("log_PostTime"),"Y-m-d")&" | 作者:<a href='member.asp?action=view&memName="&blogRS("log_Author")&"'>"&blogRS("log_Author")&"</a> | 来自:<a href='"&blogRS("log_FromURL")&"' target='_blank'>"&blogRS("log_From")&"</a> ]")
									%>
									</td>
								</tr>
								<tr><td bgcolor="#FFFFFF">
									<%If blogRS("log_IsShow")=False Then
											Response.Write("<b>此日志为隐藏日志,禁止引用通告</b>")
									Else%><b>引用地址:</b><br><img src="images/utf8.gif" border="0" align="absmiddle"> <%=SiteURL%>/trackback.asp?tbID=<%=blogRS("log_ID")%><br><img src="images/gbk.gif" border="0" align="absmiddle"> <%=SiteURL%>/trackback.asp?tbID=<%=blogRS("log_ID")%>&CP=GBK<br><br>
										<b>RSS引用地址:</b><br><img src="images/utf8.gif" border="0" align="absmiddle">  <%=SiteURL%>/trackback.asp?tbID=<%=blogRS("log_ID")%>&TM=RSS<br><img src="images/gbk.gif" border="0" align="absmiddle"> <%=SiteURL%>/trackback.asp?tbID=<%=blogRS("log_ID")%>&TM=RSS&CP=GBK<br><br>
										<%
											Set tbRS=Server.CreateObject("Adodb.Recordset")
											SQL="SELECT * FROM blog_TrackBack WHERE blog_ID="&CheckStr(Request.QueryString("logID"))&" ORDER BY tb_PostTime DESC"
											tbRS.Open SQL,CONN,1,1
											SQLQueryNums=SQLQueryNums+1
										%>
										<b>相关文章 (<%=tbRS.Recordcount%>):</b><hr size="1" noshade color="#CCCCCC">
										<%
										Do While Not tbRS.eof
											Response.write("<a href='"&HTMLEncode(tbRS("tb_URL"))&"' target='_blank'>- "&HTMLEncode(tbRS("tb_Title"))&" [ "&tbRS("tb_PostTime")&" | <b>"&HTMLEncode(tbRS("tb_Site"))&"</b> ]</a><br>")
											tbRS.MoveNext
										Loop
										tbRS.Close
										Set tbRS=nothing
									End If	
									%>
									<br><br></td>
								</tr>
								</table>
								<%
							Else
								Response.Write("无效参数, <br><br><a href=""javascript:history.go(-1);"">请点击返回</a>")
							End If
							Set blogRS=nothing
						End If
					End If
					%>
		  </td>
        </tr>
      </table></td>
  </tr>
</table>
<!--#include file="footer.asp" -->
<%
End If

'Trackback response function
Sub tbResponseXML(intFlag, strMessage,codePage)
	Response.contentType="text/xml"
	Response.write "<?xml version=""1.0"" encoding="""&codePage&"""?><response><error>"&intFlag&"</error>"
	If intFlag=1 Then Response.write "<message>"&strMessage&"</message>"
	Response.write "</response>"
	Response.End
End Sub

%>

⌨️ 快捷键说明

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