乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      用ASP為blog程序編寫Trackback功能 - 小李刀刀

       liuqg 2006-03-10

      用ASP為blog程序編寫Trackback功能

        作為所謂的Blog三大特征之一的Trackback Ping,在網(wǎng)絡(luò)上并沒有一個真正的規(guī)范,它實際上最早是在Moveable發(fā)明并開始運用的一種技術(shù),與另外兩項被廣泛認為是Blog最主要特征的RSS和Permalink相比,RSS本質(zhì)上是是一種遵循W3C RDF規(guī)范的XML格式,Permalink是一種非常通用的靜態(tài)地址技術(shù),而Trackback Ping目前為止僅僅是在blog程序中得到運用,除了Moveable的一份技術(shù)規(guī)范文檔外,也沒有什么權(quán)威的標準,尤其在國內(nèi),眾多blog程序有的支持有的不支持,有的有限支持,甚至還有因標準不一致而不能互相通信的(參見《blog is dead(blog已死)》http://blog./archive/2005/10/28/6716.aspx)。

        但是作為開發(fā)人員,我們不需要去討論或者爭論Trackback是不是死了、它會不會帶來惡意Spam這些問題,就像垃圾郵件的存在,并不影響電子郵件的技術(shù)進步和使用一樣。對于開發(fā)人員來講,既然Trackback被認為是Blog的三大技術(shù)之一,而且blog程序的用戶有這種需求,那我們在開發(fā)blog的時候,就應該包含這項技術(shù)。而且,我們應該盡可能地使我們開發(fā)的技術(shù)符合標準,或者規(guī)范,至少讓它發(fā)揮作用。

        Trackback Ping是由Moveable Type發(fā)明的規(guī)范,那么在沒有更權(quán)威的標準之前,我們使用這項技術(shù),當然應該以他們的規(guī)范為準,這里是他們的Trackback技術(shù)規(guī)范文檔:http://www./docs/mttrackback.html。

        Trackback的完整實現(xiàn)至少包含兩個方面,其一:客戶端發(fā)送Trackback Ping;其二:服務器端接收和處理Trackback Ping,并向客戶端返回處理結(jié)果。然后,根據(jù)需要我們可以考慮在客戶端接收或者不接收,處理或者不處理返回的信息。下面是具體的代碼:

      ‘#函數(shù)名:Trackback
      ‘#作 用:向指定的URL發(fā)送Trackback Ping,并根據(jù)服務器端返回的信息,提示用戶處理情況。
      ‘#參 數(shù):
      ‘#RemoteURL = 目標URL,也即所引用的blog所提供的引用地址
      ‘#MyBlogURL = 我的Blog的URL
      ‘#MyBlogName = 我的blog站點名稱
      ‘#MyBlogTitle = 當前這篇blog的標題
      ‘#MyBlogExcerpt = 當前這篇blog的摘要
      ‘#返回結(jié)果:字符串,以“|”分隔,第一部分為數(shù)字,0表示成功,1表示有錯;第二部分是具體信息。

      程序代碼 程序代碼
      Function Trackback(RemoteURL,MyBlogURL,MyBlogName,MyBlogTitle,MyBlogExcerpt)
      Dim objXMLHttp,objXML,intStat,strMessage,strPostInfo

      ‘對參數(shù)進行必要的處理,比如URLEncode之類
      MyBlogURL = Server.URLEncode(MyBlogURL)
      MyBlogName = Server.URLEncode(MyBlogName)
      MyBlogTitle = Server.URLEncode(MyBlogTitle)
      MyBlogExcerpt = Server.URLEncode(MyBlogExcerpt)

      ‘構(gòu)造要發(fā)送的請求內(nèi)容
      strPostInfo = "title=" & MyBlogTitle
      strPostInfo = strPostInfo & "&url=" & MyBlogURL
      strPostInfo = strPostInfo & "&excerpt=" & MyBlogExcerpt
      strPostInfo = strPostInfo & "&blog_name=" & MyBlogName

      ‘創(chuàng)建對象
      Set objXMLHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
      Set objXML = Server.CreateObject("Microsoft.XMLDOM")

      ‘以post方式打開XMLHTTP對象
      objXMLHttp.Open "POST", RemoteURL, false

      ‘發(fā)送請求內(nèi)容,判斷發(fā)送情況,并進行處理
      On Error Resume Next
      objXMLHttp.Send strPostInfo

      If Err.Number <> 0 Then
      Trackback = "1|TrackBack錯誤:無法連接服務器"
      Else
      If (objXMLHttp.readyState <> 4) or (objXMLHttp.Status <> 200) Then
      objXMLHttp.Abort
      Trackback = "1|Trackback超時"
      Else
      objXML.async = false
      objXML.load(objXMLHttp.responseXML)
      If objXML.parseError.errorCode <> 0 Then
      Trackback = "1|TrackBack響應解析錯誤"
      Else
      If objXML.getElementsByTagName("error")(0).Text="0" Then
      Trackback = "0|Trackback成功"
      Else
      Trackback = "1|Trackback錯誤:"&objXML.getElementsByTagName("message")(0).Text
      End If
      End If
      End If
      End If

      ‘釋放對象
      Set objXMLHTTP = Nothing
      Set objDom = Nothing
      End Function


      ‘#過程名:DealRequest
      ‘#作 用:接收和處理客戶端發(fā)來的Trackback Ping
      ‘#參 數(shù):無
      程序代碼 程序代碼
      Sub DealRequest()
      Dim blog_id,tbTitle,tbName,tbURL,tbExcerpt,stat

      ‘從所請求的URL中提取所引用的blogID,以便從數(shù)據(jù)庫中檢索對應的blog
      ‘這個參數(shù)根據(jù)你所寫的blog程序提供的Trackback地址形式而定
      ‘這里我們假設(shè)這個參數(shù)為“id”
      blog_id = Request.QueryString("id")

      ‘讀取出客戶端傳來的請求中的每個部分
      ‘注意,這里沒有對以Get方式提交的請求作出處理
      ‘因為2003年以后根據(jù)技術(shù)規(guī)范已經(jīng)不再接受Get方式的請求
      ‘如果希望增強兼容性,可以加上對Get方式的請求的處理
      tbTitle = Request.Form("title")
      tbName = Request.Form("blog_name")
      tbURL = Request.Form("url")
      tbExcerpt = Request.Form("excerpt")

      ‘檢索數(shù)據(jù)庫中id為blog_id的blog數(shù)據(jù)和url為tbURL的Trackback記錄
      ‘如果blog不存在,或者Trackback記錄已存在,向客戶端返回相應的出錯說明
      ‘我們這里調(diào)用一個進程tbResponseXML來完成這項工作
      ‘調(diào)用時,以參數(shù)stat=0[1,2]分別表示成功、日志不存在和記錄已存在

      tbResponseXML(stat)

      ‘如果是成功,還應當做好更新TrackBack記錄和相關(guān)blog引用數(shù)的工作
      End Sub


      ‘#過程名:tbResponseXML
      ‘#作 用:接收和處理客戶端發(fā)來的Trackback Ping
      ‘#參 數(shù):
      ‘#stat:錯誤代碼,0=成功;1=日志不存在;2=Trackback記錄已存在
      ‘#strCodePage:要返回的XML的編碼
      程序代碼 程序代碼
      Sub tbResponseXML(stat,strCodePage)
      Response.ContentType = "text/xml" & vbNewLine
      Response.Write "<?xml version=""1.0"" encoding=""" & strCodePage & """?>" & vbNewLine
      Response.Write " <response>" & vbNewLine
      Response.Write " <error>" & stat & "</error>" & vbNewLine
      If stat = 1 Then
      Response.Write " <message>The blog you‘re trackbacking isn‘t exist!</message>" & vbNewLine
      ElseIf stat = 2 Then
      Response.Write " <message>You can not Trackback a blog twice from the same URL.</message>" & vbNewLine
      End If
      Response.Write " </response>"
      End Sub



      [本日志由 小李刀刀 于 2006-01-11 10:10 AM 編輯]
      文章來自: 本站原創(chuàng)
      引用通告地址: http://www./blog/trackback.asp?tbID=16
      Tags: ASP 開發(fā) 腳本 跨平臺 網(wǎng)絡(luò)協(xié)議

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多