PJBlog3 发布版本 v2.8.3.127 里程碑

查看完整版本: 给日志评论增加回复功能for pjblog (4/8凌晨更新,修改越权提交的BUG,危险)

戒聊 2007-12-12 19:02

给日志评论增加回复功能for pjblog (4/8凌晨更新,修改越权提交的BUG,危险)

作者:戒聊。
发布网址:[url]www.muzili.com[/url]
12/13增加后台管理评论回复功能。详情请见第三点。
发布出来才发现好像已经有这个了?
12/22增加回复显示日期功能,以及修改回复功能(已经有回复时再次点击回复为修改),请按照1.1,1.3,1.4,1.5,2,3步重新修改,其中1.4,1.5为新加步骤,另外重新下载附件并执行.
1/19更改后台错误,按照第4点修改.(最近店准备开张,比较忙,所以这么多朋友反应的后台出错,收到MOUSE的邮件,才仔细看了看,原来是我写漏了一步修改.SORRY.),关于后台回复时间会全部变成一样这个问题,等我空了再弄哈.
[size=6][color=Red]2/8更新回复时间显示错误.请注意第2步中的***   ***中间的代码.完全第一次更新请直接去掉这行两端的***,已经修改过的请直接重新更新这一行,注意去掉***就OK了.[/color][/size]
2/9更新后台回复留言后所有之前的回复时间全部被更改,这个好像我没做过修改,是不是PJ之前本身就有的BUG?哈哈。
  更新后台回复评论后时间无显示的BUG。经测试时间正常。
  修改方法请注意:请认真执行第五步,小心,别搞错了。。

[color=Red][size=6][b]4/5凌晨修改越权提交的危险BUG,谢谢RISON提醒。修改方法请增加1.6步及第2步中红色文字部分。[/b][/size][/color]

[color=DarkRed][size=5]自从此功能发布已来,收到很多人的留言,修改不成功。主要是修改步骤太多,加上可能是我表达不清楚,呵呵,仔细看清每一步。出现什么未结束,或者超出范围之类的提示,这些都是由于修改错误,请大家多注意点我的说明,小心修改一点能成功。呵呵。实在不行请直接发送错误文件到我的QQ邮箱:645962@QQ.COM,我会在二天之内帮忙修改完成。[/size][/color]


1。1打开class\cls_article.asp,找到[code]Sub ShowComm(LogID,comDesc,DisComment)[/code],在下面插入[code]          dim action,commID,CommReplyContent
          action = trim(Request.QueryString("action"))[/code]找到Pcount=0这行下面的SQL语句,即SQL="****",小心修改。
如果已经做了我发布的《评论留言加上邮箱和网址(可防垃圾广告)》的朋友请直接将这句SQL语句替换为:[code]                if action="Reply" then
                commID=request("commID")
           SQL="Select comm_ID,comm_Content,comm_Author,comm_PostTime,comm_DisSM,comm_DisUBB,comm_DisIMG,comm_AutoURL,comm_PostIP,comm_AutoKEY,email,siteurl,comm_Reply,comm_Replytime FROM blog_Comment Where comm_ID="&commID&" UNION ALL Select 0,tb_Intro,tb_Title,tb_PostTime,tb_URL,tb_Site,tb_ID,0,'127.0.0.1',0,0,0,0,0 FROM blog_Trackback Where blog_ID="&LogID&" orDER BY comm_PostTime "&comDesc
                else
           SQL="Select comm_ID,comm_Content,comm_Author,comm_PostTime,comm_DisSM,comm_DisUBB,comm_DisIMG,comm_AutoURL,comm_PostIP,comm_AutoKEY,email,siteurl,comm_Reply,comm_Replytime FROM blog_Comment Where blog_ID="&LogID&" UNION ALL Select 0,tb_Intro,tb_Title,tb_PostTime,tb_URL,tb_Site,tb_ID,0,'127.0.0.1',0,0,0,0,0 FROM blog_Trackback Where blog_ID="&LogID&" orDER BY comm_PostTime "&comDesc
           end if[/code]否则替换为:[code]                if action="Reply" then
                commID=request("commID")
           SQL="Select comm_ID,comm_Content,comm_Author,comm_PostTime,comm_DisSM,comm_DisUBB,comm_DisIMG,comm_AutoURL,comm_PostIP,comm_AutoKEY,comm_Reply,comm_Replytime FROM blog_Comment Where comm_ID="&commID&" UNION ALL Select 0,tb_Intro,tb_Title,tb_PostTime,tb_URL,tb_Site,tb_ID,0,'127.0.0.1',0,0,0 FROM blog_Trackback Where blog_ID="&LogID&" orDER BY comm_PostTime "&comDesc
                else
           SQL="Select comm_ID,comm_Content,comm_Author,comm_PostTime,comm_DisSM,comm_DisUBB,comm_DisIMG,comm_AutoURL,comm_PostIP,comm_AutoKEY,comm_Reply,comm_Replytime FROM blog_Comment Where blog_ID="&LogID&" UNION ALL Select 0,tb_Intro,tb_Title,tb_PostTime,tb_URL,tb_Site,tb_ID,0,'127.0.0.1',0,0,0 FROM blog_Trackback Where blog_ID="&LogID&" orDER BY comm_PostTime "&comDesc
           end if[/code]1.2找到[code]<a href=""blogcomm.asp?action=del&commID="&blog_CommID&""" onclick=""if (!window.confirm('是否删除该评论?')) {return false}"">[/code]在之前插入[code]<a href=""article.asp?action=Reply&commID="&blog_CommID&"&ID="&LogID&"#comm_"&blog_CommID&"""><img src=""Plugins/guestbook/reply.gif"" alt=""回复"" border=""0"" style=""margin-bottom:-3px""/></a>[/code]找到[code]<div id="MsgHead">[/code]将[code]发表评论[/code]修改为:[code]<%
          if action="Reply" then
                  response.write "回复评论"
          else
                  response.write "发表评论"
          end if
%>[/code]找到[code]              <input name="action" type="hidden" value="post"/>[/code]替换为:[code]<%
          if action="Reply" then
%>
              <input name="action" type="hidden" value="Reply"/>
              <input name="commID" type="hidden" value="<%=blog_CommID%>"/>
<%
          else
%>
              <input name="action" type="hidden" value="post"/>
<%
          end if
%>                          [/code]1.3找到:[code]   <div class="commentcontent" id="commcontent_<%=blog_CommID%>"><%=UBBCode(HtmlEncode(CheckStr(blog_CommContent)),commArr(4,Pcount),blog_commUBB,blog_commIMG,commArr(7,Pcount),commArr(9,Pcount))%></div>[/code]在下面插入(注意:如果没有做过我发布的《评论留言加上邮箱和网址(可防垃圾广告)》,请将下面这段代码中的“12,pcount”改成“10,pcount”,13改成11:[code]           <%if len(commArr(12,Pcount))>0 then %>
                 <div class="commenttop"><img src="images/reply.gif" alt="" border="0" style="margin:0px 3px -3px 0px"/><b><%=blog_master%>回复</b>  <span class="commentinfo">[<%=DateToStr(commArr(13,Pcount),"Y-m-d H:I A")%>]</span></div>
                 <div class="commentcontent"><%=UBBCode(HtmlEncode(commArr(12,Pcount)),0,0,0,1,1)%></div>
           <%end if%>[/code]1.4找到[code] blog_CommID=commArr(0,Pcount)
           blog_CommAuthor=commArr(2,Pcount)
           blog_CommContent=commArr(1,Pcount)[/code]在下面插入(注意里面的12,按实际情况修改,可能为10)[code]   CommReplyContent=commArr(12,Pcount)[/code]1.5找到[code]           UBB_TextArea_Height="150px;"
           UBB_Tools_Items="bold,italic,underline"
           UBB_Tools_Items=UBB_Tools_Items&"||image,link,mail,quote,smiley"[/code]在下面插入[code]          if action="Reply" then
              UBB_Msg_Value=UBBFilter(UnCheckStr(CommReplyContent))
           end if[/code]1.6找到[code]                 if not stat_CommentAdd then
              response.write ("你没有权限发表留言!")
              response.write ("</div></div>")
              exit sub
       end if[/code]在其上或其下插入如下代码:[code]          if action="Reply" and not stat_Admin then
              response.write ("你没有权限回复留言!")
              response.write ("</div></div>")
              exit sub
          end if[/code]2。打开blogcomm.asp,在最后一个[code]%>[/code]之前插入如下代码:

function replyMsg
  dim post_Message,MsgID,ReInfo,post_logID
  ReInfo=Array("错误信息","","MessageIcon")
  MsgID = CheckStr(Request.form("commID"))
  post_Message=CheckStr(request.form("Message"))
  post_logID=CheckStr(request.form("logID"))
           if not (memName<>empty and stat_Admin) then
                         ReInfo(0)="评论回复错误信息"
                         ReInfo(1)="你没有权限回复留言<a href=""javascript:history.go(-1)"">单击返回</a>"
                         ReInfo(2)="ErrorIcon"

replyMsg=ReInfo
exit function

           end if
           If MsgID=Empty then
                         ReInfo(0)="评论回复错误信息"
                         ReInfo(1)="非法操作<a href=""javascript:history.go(-1)"">单击返回</a>"
                         ReInfo(2)="ErrorIcon"
replyMsg=ReInfo
exit function

           end if
           If IsInteger(MsgID)=0 then
                         ReInfo(0)="评论回复错误信息"
                         ReInfo(1)="非法操作<a href=""javascript:history.go(-1)"">单击返回</a>"
                         ReInfo(2)="ErrorIcon"
replyMsg=ReInfo
exit function

           end if
      ****Conn.ExeCute("update blog_Comment set Comm_reply='"&post_Message&"',Comm_replytime='"&DateToStr(now(),"Y-m-d H:I:S")&"' where comm_ID=" & MsgID)****
         ReInfo(0)="评论回复成功"
         ReInfo(1)="<b>你成功地对该评论进行了回复</b><a href=""article.asp?id="&post_logID&""">单击返回该日志</a>"
         ReInfo(2)="MessageIcon"
replyMsg=ReInfo
end function

找到[code]<%
else
response.write ("非法操作!!")[/code]在上面插入如下代码:[code]<%
elseif Request("action")="Reply" then
PostBComm=replyMsg
%>
   <div style="text-align:center;">
    <div id="MsgContent" style="width:300px">
      <div id="MsgHead"><%=PostBComm(0)%></div>
      <div id="MsgBody">
                 <div class="<%=PostBComm(2)%>"></div>
         <div class="MessageText"><%=PostBComm(1)%></div>
          </div>
        </div>
  </div>[/code]3。打开ConContent.asp,找到[code]                                                conn.execute("Update blog_Comment SET comm_Content='"&checkStr(Request.form("message_"&doCommID(i)))&"' Where comm_ID="&doCommID(i))[/code]替换为:
                                                conn.execute("Update blog_Comment SET comm_Content='"&checkStr(Request.form("message_"&doCommID(i)))&"',comm_Reply='"&checkStr(Request.form("reply_"&doCommID(i)))&"',Comm_replytime='"&now&"' Where comm_ID="&doCommID(i))

找到第二处的(有两处)[code]                                                                        <div class="content"><textarea name="message_<%=commArr(0,Pcount)%>" onFocus="focusMe(this)" onBlur="blurMe(this)" onMouseOver="overMe(this)" onMouseOut="outMe(this)"><%=UnCheckStr(commArr(1,Pcount))%></textarea></div>[/code]在下面插入:[code]                                                                        <div class="reply"><h5>回复内容:<%if len(trim(commArr(7,Pcount)))<1 or IsNull(commArr(7,Pcount)) then response.write "<span class=""tip"">(无回复留言)</span>"%></h5><textarea name="reply_<%=commArr(0,Pcount)%>" onFocus="focusMe(this)" onBlur="blurMe(this)" onMouseOver="overMe(this)" onMouseOut="outMe(this)" onChange="checkMe(this)"><%=UnCheckStr(commArr(7,Pcount))%></textarea></div>[/code]4.找到[code]                                                        SQL="SELECT comm_ID,comm_Content,comm_Author,comm_PostTime,comm_PostIP,blog_ID,T.log_Title from blog_Comment C,blog_Content T WHERE C.blog_ID=T.log_ID ORDER BY C.comm_PostTime desc"[/code]修改为:[code]                                                        SQL="SELECT comm_ID,comm_Content,comm_Author,comm_PostTime,comm_PostIP,blog_ID,T.log_Title,comm_Reply from blog_Comment C,blog_Content T WHERE C.blog_ID=T.log_ID ORDER BY C.comm_PostTime desc"[/code]5.
找到[code]elseif  Request.form("doModule")="Update" then
                     for i=0 to ubound(doCommID)
                                if Request.form("whatdo")="msg" then[/code]到[code]doTitle="评论"
                                            doRedirect=""
                                end if
                     next[/code]中间的几行代码,全部替换为:[code]                                                dim blog_book_reply
                                                set blog_book_reply=Conn.Execute("select book_reply FROM blog_book WHERE book_ID="&doCommID(i))
                                                if blog_book_reply("book_reply")=checkStr(Request.form("reply_"&doCommID(i))) then
                                                                conn.execute("UPDATE blog_book SET book_Content='"&checkStr(Request.form("message_"&doCommID(i)))&"',book_replyAuthor='"&memName&"' WHERE book_ID="&doCommID(i))
                                                else
                                                                conn.execute("UPDATE blog_book SET book_Content='"&checkStr(Request.form("message_"&doCommID(i)))&"',book_replyAuthor='"&memName&"',book_replyTime=#"&DateToStr(now(),"Y-m-d H:I:S")&"#,book_reply='"&checkStr(Request.form("reply_"&doCommID(i)))&"' WHERE book_ID="&doCommID(i))
                                                end if
                                                doTitle="留言"
                                            doRedirect="msg"
                                elseif Request.form("whatdo")="comment" then
                                                  dim blogcommid
                                                  set blogcommid=Conn.ExeCute("select comm_Reply from blog_Comment where comm_ID="&doCommID(i))
                                                  if blogcommid("comm_Reply")=checkStr(Request.form("reply_"&doCommID(i))) then
                                                                conn.execute("UPDATE blog_Comment SET comm_Content='"&checkStr(Request.form("message_"&doCommID(i)))&"' WHERE comm_ID="&doCommID(i))
                                                else
                                                                conn.execute("UPDATE blog_Comment SET comm_Content='"&checkStr(Request.form("message_"&doCommID(i)))&"',comm_Reply='"&checkStr(Request.form("reply_"&doCommID(i)))&"',Comm_replytime=#"&DateToStr(now(),"Y-m-d H:I:S")&"# WHERE comm_ID="&doCommID(i))
                                                end if[/code]6。下载附件,上传Update.ASP到博客目录执行升级数据库。

OK。全文完。

如有疑问,请在[url]http://www.muzili.com/article.asp?id=7833[/url]留言。

[[i] 本帖最后由 戒聊 于 2008-4-19 16:31 编辑 [/i]]

Rexavin 2007-12-12 19:23

还收费???

不过还是顶下

海豚 2007-12-12 19:26

5元不贵,不过有没有保修啊?:D

dyhmily 2007-12-12 19:31

保修到新版本吧

Rexavin 2007-12-12 19:44



弄好之后,我测试的时候,点击发表显示该页无法显示

Rexavin 2007-12-12 20:29

在作者的帮助下,已经弄好了~

o0o 2007-12-12 21:33

希望楼主放出修改后的源文件.以便不会修改的直接覆盖.

戒聊 2007-12-12 21:44

[quote]原帖由 [i]o0o[/i] 于 2007-12-12 21:33 发表 [url=http://bbs.pjhome.net/redirect.php?goto=findpost&pid=193196&ptid=27746][img]http://bbs.pjhome.net/images/common/back.gif[/img][/url]
希望楼主放出修改后的源文件.以便不会修改的直接覆盖. [/quote]


呵呵。不会修改的直接覆盖的话永远也只能装一个东西。

formo 2007-12-12 22:00

:L

Rexavin 2007-12-12 22:02

[quote]原帖由 [i]kkey0416[/i] 于 2007-12-12 21:44 发表 [url=http://bbs.pjhome.net/redirect.php?goto=findpost&pid=193201&ptid=27746][img]http://bbs.pjhome.net/images/common/back.gif[/img][/url]



呵呵。不会修改的直接覆盖的话永远也只能装一个东西。 [/quote]
这句话说的没错,呵呵,自己试着改改吧

o0o 2007-12-12 22:10

玩BLOG的不一定都懂代码,楼主考虑一下.

3130941 2007-12-12 22:32

顶,戒聊的东西都是高科技!

戒聊 2007-12-12 22:40

[quote]原帖由 [i]o0o[/i] 于 2007-12-12 22:10 发表 [url=http://bbs.pjhome.net/redirect.php?goto=findpost&pid=193209&ptid=27746][img]http://bbs.pjhome.net/images/common/back.gif[/img][/url]
玩BLOG的不一定都懂代码,楼主考虑一下. [/quote]


呵呵。很好改的啊。下载一个DREAMWEAVER,然后搜索就OK了。我的文件改过很多,发出来也用不上。

3130941 2007-12-12 23:42

继续顶贴生涯!

yangjun 2007-12-13 00:02

的确,我发现了,LZ写出来的东西都非常实用,最起码都是我喜欢的。
尤其是那个评论、留言通知的,非常不错!以后我就专门锁定你的帖子了

yangjun 2007-12-13 00:29

[code]错误类型:
Microsoft VBScript 编译器错误 (0x800A0409)
未结束的字符串常量
/class/cls_article.asp, line 188, column 97
if stat_Admin=true or (stat_CommentDel=true and memName=blog_CommAuthor) then response.write (" |
------------------------------------------------------------------------------------------------^[/code]这个怎么改?

戒聊 2007-12-13 02:54

[quote]原帖由 [i]yangjun[/i] 于 2007-12-13 00:29 发表 [url=http://bbs.pjhome.net/redirect.php?goto=findpost&pid=193258&ptid=27746][img]http://bbs.pjhome.net/images/common/back.gif[/img][/url]
错误类型:
Microsoft VBScript 编译器错误 (0x800A0409)
未结束的字符串常量
/class/cls_article.asp, line 188, column 97
if stat_Admin=true or (stat_CommentDel=true and memName=blog_CommAuthor) then r ... [/quote]


小心加代码,应该是代码加错了的原因。

戒聊 2007-12-13 13:18

12/13增加后台管理评论回复功能。详情请见第三点。

52077 2007-12-13 14:29

给WBC的AJAX评论加回复就好了

锐风 2007-12-13 21:20

第一眼看挺不错..后来仔细一看太复杂了啊!!我的天..得改到什么时候..不用了/..
页: [1] 2 3 4 5 6
查看完整版本: 给日志评论增加回复功能for pjblog (4/8凌晨更新,修改越权提交的BUG,危险)