블로그이야기

ASP에서 트랙백 보내기

TIGERJUNE 2005. 3. 3. 12:37
1.Post 작성시 DB insert 처리부분에 Form에서 track_back(트랙백)이 있다면 아래 스크립트를 실행하도록 처리한다.
물론 이전단계에서 해당 URL의 무결성 검사를 해주는것이 좋겠다.
존재하는주소인지, 죽은 서버 주소는 아닌지 등등

<SCRIPT LANGUAGE=JavaScript>document.domain = "sizz.net";</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
function trb_ping(form)
{
form.submit();
}
</SCRIPT>
<FORM NAME=trbform METHOD=POST ACTION="/tb/tb_post.asp">
<INPUT TYPE=HIDDEN NAME=b_idx VALUE="<%=b_idx%>">
<INPUT TYPE=HIDDEN NAME=title VALUE="<%=title%>">
<INPUT TYPE=HIDDEN NAME=track_back VALUE="<%=track_back%>">
<INPUT TYPE=HIDDEN NAME=content VALUE="<%=excerpt%>">
<INPUT TYPE=HIDDEN NAME=blog_name VALUE="<%=blog_name%>">
</FORM>
<SCRIPT LANGUAGE="JavaScript"> setTimeout("trb_ping(document.trbform)","500"); </SCRIPT>


2.tb_post.asp
tb_post.asp에서 위의 값들을 받아서 해당 URL로 트랙백을 날리고, 리턴 에러값에 따라서 에러 처리를 한다.
<%
on Error Resume Next

b_idx=request.form("b_idx")
B_URL=Request.ServerVariables("SERVER_NAME")
m_url=Server.URLEncode("http://"&B_URL&"/B_Archive.asp?b_idx="&b_idx)
title=Server.URLEncode(request.form("title"))
excerpt=Server.URLEncode(request.form("content"))
blog_name=Server.URLEncode(request.form("blog_name"))
track_back=request.form("track_back")

Str_tb="title="&title&"&url="&m_url&"&excerpt="&excerpt&"&blog_name="&blog_name
set xml = server.CreateObject("Microsoft.XMLHTTP")
xml.open "POST", "" & track_back & "", false
xml.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
xml.send (Str_tb)

Set objDom=Server.CreateObject("Microsoft.XMLDOM")
objDom.async=false
objDom.load(xml.responsebody)
Set objNode=objDom.documentElement.SelectSingleNode("error")
error_m=objNode.text

set xml = nothing
Set objNode=nothing
Set objDom=nothing


response.write error_m
if error_m=1 or error_m="" then '실패

response.redirect "/B_Edit.asp?b_idx="&b_idx&"&tb_e=0"
else

response.redirect "/bdefault.asp"
end if
%>

2004-01-26 오후 2:51:32