ASP 에서 트래백 내보네기
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
%>