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

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

本主题由 四川-果果 于 2008-6-11 15:06 移动

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

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

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

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


1。1打开class\cls_article.asp,找到
复制内容到剪贴板
代码:
Sub ShowComm(LogID,comDesc,DisComment)
,在下面插入
复制内容到剪贴板
代码:
          dim action,commID,CommReplyContent
          action = trim(Request.QueryString("action"))
找到Pcount=0这行下面的SQL语句,即SQL="****",小心修改。
如果已经做了我发布的《评论留言加上邮箱和网址(可防垃圾广告)》的朋友请直接将这句SQL语句替换为:
复制内容到剪贴板
代码:
                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
否则替换为:
复制内容到剪贴板
代码:
                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
1.2找到
复制内容到剪贴板
代码:
<a href=""blogcomm.asp?action=del&commID="&blog_CommID&""" onclick=""if (!window.confirm('是否删除该评论?')) {return false}"">
在之前插入
复制内容到剪贴板
代码:
<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>
找到
复制内容到剪贴板
代码:
<div id="MsgHead">
复制内容到剪贴板
代码:
发表评论
修改为:
复制内容到剪贴板
代码:
<%
          if action="Reply" then
                  response.write "回复评论"
          else
                  response.write "发表评论"
          end if
%>
找到
复制内容到剪贴板
代码:
              <input name="action" type="hidden" value="post"/>
替换为:
复制内容到剪贴板
代码:
<%
          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
%>                          
1.3找到:
复制内容到剪贴板
代码:
   <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>
在下面插入(注意:如果没有做过我发布的《评论留言加上邮箱和网址(可防垃圾广告)》,请将下面这段代码中的“12,pcount”改成“10,pcount”,13改成11:
复制内容到剪贴板
代码:
           <%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%>
1.4找到
复制内容到剪贴板
代码:
blog_CommID=commArr(0,Pcount)
           blog_CommAuthor=commArr(2,Pcount)
           blog_CommContent=commArr(1,Pcount)
在下面插入(注意里面的12,按实际情况修改,可能为10)
复制内容到剪贴板
代码:
   CommReplyContent=commArr(12,Pcount)
1.5找到
复制内容到剪贴板
代码:
           UBB_TextArea_Height="150px;"
           UBB_Tools_Items="bold,italic,underline"
           UBB_Tools_Items=UBB_Tools_Items&"||image,link,mail,quote,smiley"
在下面插入
复制内容到剪贴板
代码:
          if action="Reply" then
              UBB_Msg_Value=UBBFilter(UnCheckStr(CommReplyContent))
           end if
1.6找到
复制内容到剪贴板
代码:
                 if not stat_CommentAdd then
              response.write ("你没有权限发表留言!")
              response.write ("</div></div>")
              exit sub
       end if
在其上或其下插入如下代码:
复制内容到剪贴板
代码:
          if action="Reply" and not stat_Admin then
              response.write ("你没有权限回复留言!")
              response.write ("</div></div>")
              exit sub
          end if
2。打开blogcomm.asp,在最后一个
复制内容到剪贴板
代码:
%>
之前插入如下代码:

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

找到
复制内容到剪贴板
代码:
<%
else
response.write ("非法操作!!")
在上面插入如下代码:
复制内容到剪贴板
代码:
<%
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>
3。打开ConContent.asp,找到
复制内容到剪贴板
代码:
                                                conn.execute("Update blog_Comment SET comm_Content='"&checkStr(Request.form("message_"&doCommID(i)))&"' Where comm_ID="&doCommID(i))
替换为:
                                                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))

找到第二处的(有两处)
复制内容到剪贴板
代码:
                                                                        <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>
在下面插入:
复制内容到剪贴板
代码:
                                                                        <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>
4.找到
复制内容到剪贴板
代码:
                                                        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"
修改为:
复制内容到剪贴板
代码:
                                                        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"
5.
找到
复制内容到剪贴板
代码:
elseif  Request.form("doModule")="Update" then
                     for i=0 to ubound(doCommID)
                                if Request.form("whatdo")="msg" then
复制内容到剪贴板
代码:
doTitle="评论"
                                            doRedirect=""
                                end if
                     next
中间的几行代码,全部替换为:
复制内容到剪贴板
代码:
                                                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
6。下载附件,上传Update.ASP到博客目录执行升级数据库。

OK。全文完。

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

[ 本帖最后由 戒聊 于 2008-4-19 16:31 编辑 ]
附件: 您所在的用户组无法下载或查看附件
本帖最近评分记录
  • anson PJ币 +100 优秀插件 2008-4-21 17:02

出现乱码提示的时候,点右键,查看源代码,在源代码的最后就有中文错误提示了。

TOP

还收费???

不过还是顶下
旗下网站:
1-我的博客:http://WWW.21Beta.COM
2-爱直播网:www.iZhiBo.CN
3-FMTime论坛:http://Www.FMTime.CN
4-PJBlog交流群:32294645

TOP

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

TOP

保修到新版本吧

TOP



弄好之后,我测试的时候,点击发表显示该页无法显示
旗下网站:
1-我的博客:http://WWW.21Beta.COM
2-爱直播网:www.iZhiBo.CN
3-FMTime论坛:http://Www.FMTime.CN
4-PJBlog交流群:32294645

TOP

在作者的帮助下,已经弄好了~
旗下网站:
1-我的博客:http://WWW.21Beta.COM
2-爱直播网:www.iZhiBo.CN
3-FMTime论坛:http://Www.FMTime.CN
4-PJBlog交流群:32294645

TOP

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

TOP

引用:
原帖由 o0o 于 2007-12-12 21:33 发表
希望楼主放出修改后的源文件.以便不会修改的直接覆盖.
呵呵。不会修改的直接覆盖的话永远也只能装一个东西。

出现乱码提示的时候,点右键,查看源代码,在源代码的最后就有中文错误提示了。

TOP

★易信互联IDC19.COM:e心为您!
BGP双线全能虚拟主机100M 25元/年
BGP双线全能虚拟主机1G 88元/年

福儿工作室:WWW.FVLL.CN

TOP

引用:
原帖由 kkey0416 于 2007-12-12 21:44 发表



呵呵。不会修改的直接覆盖的话永远也只能装一个东西。
这句话说的没错,呵呵,自己试着改改吧
旗下网站:
1-我的博客:http://WWW.21Beta.COM
2-爱直播网:www.iZhiBo.CN
3-FMTime论坛:http://Www.FMTime.CN
4-PJBlog交流群:32294645

TOP

发新话题