官方首页 | 无图版 | BBS首页
PJBlog3 2.8.5.157 新版发布 下载|升级(2008.8.26) 来给PJ3提提发展建议 2008版 PJHOME 珍藏/纪念版官方T恤 正式发布! PJ3内测团队主创人员身份,性格,特点吐血大曝光
PJBlog技术支持论坛使用问题总索引 PJ-Blog 3 斑竹日志 【独家】我使用过的三种空间,与客服的精彩故事 Z-Blog,Wordpress,Bo-Blog转换到PJBlog
 43 12345
发新话题
打印

『原创』pjblog2 加密日志补丁程序 V2.1 (更新手动修改方法)

本主题由 Rison 于 2008-2-26 11:45 关闭

『原创』pjblog2 加密日志补丁程序 V2.1 (更新手动修改方法)

////////////////////////////////////////////////////////////////////////////////////////
pjblog2 加密日志补丁程序 V1.0
原创作者:vjlin
日    期:2006-11-1
演示地址:http://www.MeBox.cn
下载地址:http://www.mebox.cn/article.asp?id=235
QQ:688781  e-Mail:vjlin@qq.com
////////////////////////////////////////////////////////////////////////////////////////

2008.2.26 Rison:此帖功能仅支持PJBlog v2.6版本, v2.7版本用户请查看插件补丁|日志加密功能 For PJBlog v2.7 Build05


功能说明:

  可给每篇日志单独设置一个访问密码,只有在密码输入正确后才可以查看日志内容。

安装方法:

  先打开数据库文件,在表“blog_Content”内添加新字段“log_Readpw”类型为文本,然后将安装包内所有文件复制到你网站文件夹覆盖原有文件即可。

使用方法:

  安装成功后在发布和编辑日志的时候会有一个密码输入框,如果你想为某篇日志设置访问密码只需在密码框内输入然后保存日志即可;如果是想取消访问密码,只需在编辑时清空密码框内容然后保存日志即可。日志类型(隐藏日志/公开日志)不影响加密功能的使用。

     11/6
     ·更改版本号为2.1
     ·增加对列表模式进行加密处理
     ·增加管理员无需输入密码即可查看日志内容权限
     ·优化部分代码

11/4

    应网友要求我今天抽时间把加密日志手动修改方法整理出来并做了部分升级,相关更新内容请查看http://www.mebox.cn/article.asp?id=235,以下是具体的手动修改步骤(整理得比较匆忙如有遗漏请到这里回复告知 http://www.mebox.cn/article.asp?id=239

     ·更改版本号为2.0
     ·增强密码验证功能,现在可同时查看多篇加密日志(密码不同)且不会互相干扰(1.0在查看多篇不同密码的加密日志时会产生干扰)
     ·增加多次输入密码错误后(3次错误)系统自动锁定该日志,避免暴力破解以保证日志安全


2.1手动修改方法
修改涉及文件
class/cls_logAction.asp
class/cls_default.asp
class/cls_article.asp

article.asp
blogpost.asp
blogedit.asp

--------------------------------------------------
注意:先打开数据库文件,在表“blog_Content”内添加新字段“log_Readpw”类型为文本,然后在继续下面的步骤
------------------
class/cls_logAction.asp

第一步

查找:public logIsShow,logIsDraft,logWeather,logLevel,logCommentOrder

替换成:public logIsShow,logIsDraft,logWeather,logLevel,logCommentOrder,logReadpw


第二步

查找:logPublishTimeType="now"

在下面添加:logReadpw = ""


第三步

查找:weblog("log_comorder")=logCommentOrder

在下面添加:weblog("log_Readpw")=logReadpw
(注意有两处,两处都要添加)

第四步

查找:sqlString="Select top 1 log_CateID,log_Author,log_Title,log_edittype,log_ubbFlags,log_Intro,log_weather
,log_Level,log_comorder,log_DisComment,log_IsShow,log_IsTop,log_IsDraft,log_From
,log_FromURL,log_Content,log_tag,log_PostTime,log_CommNums
,log_QuoteNums,log_ViewNums

替换成:sqlString="Select top 1 log_CateID,log_Author,log_Title,log_edittype,log_ubbFlags,log_Intro,log_weather
,log_Level,log_comorder,log_DisComment,log_IsShow,log_IsTop,log_IsDraft,log_From
,log_FromURL,log_Content,log_tag,log_PostTime,log_CommNums
,log_QuoteNums,log_ViewNums,log_Readpw


第五步

查找:logViewCount = weblog("log_ViewNums")

在下面添加:logReadpw = weblog("log_Readpw")


--------------------------
class/cls_default.asp

第一步

查找:strSQL="log_ID,log_CateID,log_Author,log_Title,log_PostTime,log_IsShow
,log_CommNums,log_QuoteNums,log_ViewNums,log_IsTop"

替换成:strSQL="log_ID,log_CateID,log_Author,log_Title,log_PostTime,log_IsShow
,log_CommNums,log_QuoteNums,log_ViewNums,log_IsTop,log_Readpw"


第二步

查找:strSQL="log_ID,log_CateID,log_Author,log_Title,log_PostTime,log_IsShow
,log_CommNums,log_QuoteNums,log_ViewNums,log_IsTop,log_Intro
,log_Content,log_edittype,log_DisComment,log_ubbFlags,log_tag"

替换成:
strSQL="log_ID,log_CateID,log_Author,log_Title,log_PostTime,log_IsShow
,log_CommNums,log_QuoteNums,log_ViewNums,log_IsTop,log_Intro
,log_Content,log_edittype,log_DisComment,log_ubbFlags,log_tag
,log_Readpw"


第三步

查找:  if not stat_ShowHiddenCate and not stat_Admin then exit function
  end if


在下面添加:
'加密日志权限判断 开始
  dim bReadPW
  bReadPW = false
  If webLogArr(16,PageCount) = "" or isNull(webLogArr(16,PageCount)) or  Session("MeBox_ReadPassWord_"&webLogArr(0,PageCount)) = webLogArr(16,PageCount) or stat_Admin  Then bReadPW = true
  '加密日志权限判断 结束


(注意有两处,第一处在输出普通模式那里添加上面这段代码,第二出在输出列表模式那里添加下面这段代码,如不需要加密列表模式日志标题可不添加下面这段代码)

'加密日志权限判断 开始
  dim bReadPW
  bReadPW = false
  If webLogArr(10,PageCount) = "" or isNull(webLogArr(10,PageCount)) or  Session("MeBox_ReadPassWord_"&webLogArr(0,PageCount)) = webLogArr(10,PageCount) or stat_Admin  Then bReadPW = true
  '加密日志权限判断 结束


第四步(加密普通模式日志标题,如不需要加密标题可跳过)

查找:<a class="titleA" href="article.asp?id=<%=webLogArr(0,PageCount)%>"><%=HtmlEncode(webLogArr(3,PageCount))%></a>

替换成:   If bReadPW  Then '密码访问
  %> <a class="titleA" href="article.asp?id=<%=webLogArr(0,PageCount)%>"><%=HtmlEncode(webLogArr(3,PageCount))%></a>
   <%Else%>
   <a class="titleA" href="article.asp?id=<%=webLogArr(0,PageCount)%>">[加密日志]</a>
   <%End If%>


第五步

查找:if webLogArr(5,PageCount)=false or getCate.cate_Secret then

替换成:
if webLogArr(5,PageCount)=false or getCate.cate_Secret or (webLogArr(16,PageCount) <> "" And Not isNull(webLogArr(16,PageCount))) then


(注意有两处,第一处在输出普通模式那里替换上面这段代码,第二出在输出列表模式那里替换下面这段代码)

if webLogArr(5,PageCount)=false or getCate.cate_Secret or (webLogArr(10,PageCount) <> "" And Not isNull(webLogArr(10,PageCount))) then

第六步

查找:  if CanRead then
   if webLogArr(12,PageCount)=1 then%>

替换成:  if CanRead then
   If bReadPW  Then '密码访问
    if webLogArr(12,PageCount)=1 then%>


第七步

查找:   End If
   if len(webLogArr(15,PageCount))>0 then

替换成:end if
   Else%>
   <div class="Content-body">该日志是加密日志,需要输入密码才可以查看!
<%End If
    if len(webLogArr(15,PageCount))>0 then


第八步(加密列表模式日志标题,如不需要加密标题可跳过)

查找:<%If CanRead Then%>
   <a href="<%=logLink%>" title="作者:<%=webLogArr(2,PageCount)%>日期:<%=DateToStr(webLogArr(4,PageCount),"Y-m-d")%>"><%=HtmlEncode(webLogArr(3,PageCount))%></a>


替换成:<%If CanRead Then
    If bReadPW Then '密码访问%>
   <a href="<%=logLink%>" title="作者:<%=webLogArr(2,PageCount)%>日期:<%=DateToStr(webLogArr(4,PageCount),"Y-m-d")%>"><%=HtmlEncode(webLogArr(3,PageCount))%></a>
    <%Else%>
     <a href="<%=logLink%>">[加密日志]</a>
    <%End If%>


------------------------
class/cls_article.asp

第一步

查找:       <div id="logPanel" class="Content-body">
      <%



在下面添加:      Dim ChkReadPW
      ChkReadPW = Trim(Request("PW"))
      If ChkReadPW = "" Then
       ChkReadPW = Session("MeBox_ReadPassWord_"&LogID)
      Else
       Session("MeBox_ReadPassWord_"&LogID) = ChkReadPW
      End If
      '密码验证错误次数
      If IsNull(Session("MeBox_chkpwErr_"&LogID)) or IsEmpty(Session("MeBox_chkpwErr_"&LogID)) Then Session("MeBox_chkpwErr_"&LogID) = 0
      If Session("MeBox_chkpwErr_"&LogID) >= 3 Then
      %>
      <script>alert("密码已连续错误<%=Session("MeBox_chkpwErr_"&LogID)%>次,该日志已被锁定暂时不可以查看!");</script>
      该日志是加密日志,你输入的密码已连续错误<%=Session("MeBox_chkpwErr_"&LogID)%>次,你的IP已被记录日志已被锁定暂时不可以查看!<br/><br/>
      <%
      
     ElseIf log_ViewArr(20,0) = "" or IsNull(log_ViewArr(20,0)) or log_ViewArr(20,0) = ChkReadPW or stat_Admin Then '密码访问


第二步

查找:       end if %>
        <br/><br/>

        </div>
        <div class="Content-body">
         <%if len(log_ViewArr(16,0))>0 then response.write (log_ViewArr(16,0)&"<br/>")%>


在上面添加:      end if
     Else
      If Trim(Request.Form("do")) = "chkpw" Then
       Session("MeBox_chkpwErr_"&LogID) = Session("MeBox_chkpwErr_"&LogID) + 1
      %>
      <script>alert("密码错误,请输入正确的密码!");</script>
      <%
      End If
     %>
     <form id="chkread" name="chkread" method="post" action="">
     该日志是加密日志,需要输入密码才可以查看!<br/><br/>
     <label>
     请输入访问密码:<input name="pw" type="password" id="pw" size="10" class="inputBox" /><input name="do" type="hidden" value="chkpw" />
     <input type="submit" name="Submit" value="确定" class="userbutton" />
     </label>
                    </form>
     <%


-------------------------------
article.asp

第一步

查找:log_DisComment FROM blog_Content

替换成:log_DisComment,log_Readpw FROM blog_Content

第二步

查找:log_tag FROM blog_Content

替换成:log_tag,log_Readpw FROM blog_Content

-------------------------------
blogpost.asp

第一步

查找:lArticle.logPublishTimeType = request.form("PubTimeType")

在下面添加:lArticle.logReadpw = request.form("log_Readpw")

第二步

查找:<input name="log_FromURL" type="text" id="log_FromURL" value="<%=siteURL%>" size="38" class="inputBox" />

在下面添加:<span style="font-weight: bold">密码:</span>  
                  <input name="log_Readpw" type="password" id="Readpw" size="10" class="inputBox" />


--------------------------------------
blogedit.asp

第一步

查找:lArticle.logPublishTimeType = request.form("PubTimeType")

在下面添加: lArticle.logReadpw = request.form("log_Readpw")

第二步

查找:<input name="log_FromURL" type="text" id="log_FromURL" size="38" class="inputBox" value="<%=lArticle.logFromURL%>"/>

在下面添加:<span style="font-weight: bold"> 密码:</span>  
                   <input name="log_Readpw" type="password" id="log_Readpw" size="10" class="inputBox" value="<%=lArticle.logReadpw%>"  />


[ 本帖最后由 Rison 于 2008-2-26 15:18 编辑 ]

TOP

好东西
第一个UP

TOP

非常有效的东西!支持!

TOP

bucuo

TOP

具体文件的修改能否说明下?

[ 本帖最后由 cosh 于 2006-11-2 17:32 编辑 ]
『沙之轩』cosh's blog
诚招建博半年以上友情连接

TOP

我的blog改的对较多,有没有修改方法啊?直接盖了可不行啊!!!

TOP

收藏了

TOP

偶也来顶下先

TOP

期待修改记录

TOP

引用:
原帖由 aaronblog 于 2006-11-3 17:23 发表
期待修改记录
同样的想法
毕竟原来修改了很多地方.....

TOP

 43 12345
发新话题