pjblog升级到3.2.9.518后友情链接页面无数据的解决方法

  前不久得空将博客程序升级到了V3.2.9.518版,今天和一网友交换友情链接时发现友情链接的更多页面里所有友情链接都消失了,只剩下一个友情链接申请提交表单。

  正好有点时间,于是分析了下程序和数据库,找到了问题的所在。

  先看BlogLink.asp的51行:server.Execute("post/link.html"),查看post/link.html文件,发现内容为空,这是直接原因。

  再看生成post/link.html文件的程序代码,是control/f_control.asp里的258行开始的这个Sub PostLink()。对应数据库表结构,可知这个代码是先读取友情链接分类,然后再按分类读取友情链接信息,然而我发现友情链接表里的分类ID都为0,也就是未分类,因此程序最终没有读取到任何信息。

  解决办法有两个,一个就是去后台将所有的友情链接分类。这是最简单的方法。

  还有一个办法就是修改程序,将未分类的友情链接也读取出来。之前一直未注意,不知道上一个版本有没有这样的问题,有的话也是类似的修改方法。附修改后的Sub PostLink()代码如下:

Sub PostLink()
     Dim LoadTemplate, Temp, SaveArticle
  Dim Link_SplitArray, Link_Global_Temp, Link_Layout_Temp, LinkClassTemp, LinkTemp, AllTemp
     LoadTemplate = LoadFromFile("Template/Link.asp")
     If LoadTemplate(0) = 0 Then '读取成功后写入信息
         Temp = LoadTemplate(1)
   Link_SplitArray = Split(Temp, "<#ST(B)#>")
   Link_Global_Temp = Link_SplitArray(1)
   Link_Layout_Temp = Link_SplitArray(2)
         Dim blog_Links
         Set blog_Links = conn.Execute("Select * From blog_LinkClass order by LinkClass_Order asc")
   AllTemp = ""
         Do Until blog_Links.EOF
             LinkClassTemp = Link_Global_Temp
    LinkTemp = Link_Layout_Temp
    Dim LinkSingContent
    LinkSingContent = GetLinkSingleHtml(LinkTemp, Trim(blog_Links("LinkClass_ID")), 3)
    If Len(LinkSingContent) > 0 Then
     LinkClassTemp = Replace(LinkClassTemp, "<$LinkClass_Name$>", Trim(blog_Links("LinkClass_Name")))
     LinkClassTemp = Replace(LinkClassTemp, "<$LinkClass_Title$>", Trim(blog_Links("LinkClass_Title")))
     LinkClassTemp = Replace(LinkClassTemp, "<$LoopLayout$>", LinkSingContent)
     AllTemp = AllTemp & LinkClassTemp
    End If
             blog_Links.movenext
         Loop
   LinkClassTemp = Link_Global_Temp
   LinkTemp = Link_Layout_Temp
   LinkSingContent = GetLinkSingleHtml(LinkTemp, 0, 3)
   If Len(LinkSingContent) > 0 Then
    LinkClassTemp = Replace(LinkClassTemp, "<$LinkClass_Name$>", "其它")
    LinkClassTemp = Replace(LinkClassTemp, "<$LinkClass_Title$>", "Orther")
    LinkClassTemp = Replace(LinkClassTemp, "<$LoopLayout$>", LinkSingContent)
    AllTemp = AllTemp & LinkClassTemp
   End If
         SaveArticle = SaveToFile(AllTemp, "post/link.html")
     End If
 End Sub

发表评论

电子邮件地址不会被公开。 必填项已用*标注