网站被篡改_网页内容修改

网站被篡改_网页内容修改   NetCMS的相关新闻显示是根据新闻的Tag来查找所有具有相同的Tag的新闻,然后将其显示的。如,某条新闻的Tag是“工资|奖金”,那么会用下列SQL语句来查找具有相同Tag的新闻:selecttop5*fromahjdcw.NT_NewsWhere[isRecyle]=0And[isLock]=0And[SiteID]=0   And([Tags]L

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

    NetCMS的相关新闻显示是根据新闻的Tag来查找所有具有相同的Tag的新闻,然后将其显示的。如,某条新闻的Tag是“工资|奖金”,那么会用下列SQL语句来查找具有相同Tag的新闻:

select top 5 * from ahjdcw.NT_News
Where [isRecyle]=0 And [isLock]=0 And [SiteID]=’0′
    And ([Tags] Like ‘%工资%’ or NewsTitle Like ‘%工资%’ or [Tags] Like ‘%奖金%’ or NewsTitle Like ‘%奖金%’ or 1=2)
Order By [CreatTime] Desc,id Desc

 

    新闻内容页是通过Content.aspx页面来实现的。实现原理是,逐步查找模板中的所有标签,然后用相应的内容去替换。如显示新闻内容时,在LabelMass类中,使用正则表达式,用ParseContent()方法查找[NT:unLoop,NT:SiteID=0,NT:LabelType=ReadNews]…[/NT:unLoop]标签,再用Parse()方法替换{Title}{Content}等内容字段。

    关键在于,相关新闻的标签

[NT:Loop,NT:SiteID=0,NT:LabelType=CorrNews,NT:Number=5,NT:Desc=desc,NT:DescType=date,NT:isDiv=true,NT:TitleNumer=50]

<li><a href=”{#URL}”>{#uTitle}</a></li>

[/NT:Loop]

是嵌套在【ReadNews 标签】中的。LabelMass类Parse()方法调用Analyse_CorrNews()方法,Analyse_CorrNews()方法再调用Analyse_List()方法,Analyse_List()方法调用Analyse_ReadNews()去解析标签字段内容去替换{Title}内容字段时,会把相关新闻的{Title}字段也一并替换掉了,造成下一步去解析CorrNews标签时,已经没有{Title}字段可以替换了,因此造成同一个新闻标题(实际上就是本条新闻标题)会重复显示多次。如下所示:

·工作人员文明礼貌用语

·工作人员文明礼貌用语

·工作人员文明礼貌用语

·工作人员文明礼貌用语

·工作人员文明礼貌用语

 

    解决办法是:解析ReadNews标签时,先暂时将CorrNews标签内容去掉。解析完成后,再添加回去,以不影响下一步解析。

    修改NetCMS.Publish项目内的LabelMass_Method4.cs文件中的Analyse_ReadNews方法。

    1、第一行增加以下代码,用以保存要去掉的CorrNews标签。

    string CorrNews = null;

    2、在以下代码后:

            if (NewsTF == 1)
            {

                str_Style = this.Mass_Inserted;

    增加以下代码:

                // 如果是读取新闻内容标签,去掉相关新闻标签
                if (this.Param_LabelType == EnumLabelType.ReadNews)
                {

                    string pattern = @”/[NT:Loop,[^/]]+/][/s/S]*?/[/NT:Loop/]”;
                    Regex reg = new Regex(pattern, RegexOptions.Compiled);
                    Match m = reg.Match(str_Style);
                    if (m.Success)
                    {

                        CorrNews = m.Value;
                        int pos = str_Style.IndexOf(CorrNews);
                        int len = CorrNews.Length;
                        str_Style = str_Style.Substring(0, pos – 1) + “[NT:Loop,NT:SiteID=0,NT:LabelType=CorrNews]” + str_Style.Substring(pos + len);
                    }
                }

    作用是取出CorrNews标签部分,用”[NT:Loop,NT:SiteID=0,NT:LabelType=CorrNews]” 取代,便于后面将CorrNews标签再加回去。

    3、在以下代码之前(快到Analyse_ReadNews方法结束了),加入以下代码:

                // 将相关新闻标签再加回去
                if (this.Param_LabelType == EnumLabelType.ReadNews)
                {

                    if (CorrNews != null || CorrNews.Trim() != “”)
                    {

                        str_Style = str_Style.Replace(“[NT:Loop,NT:SiteID=0,NT:LabelType=CorrNews]”, CorrNews);
                    }
                }

    重新生成NetCMS.Publish和NetCMS.Web项目,将NetCMS.Web项目Bin文件夹下生成的NetCMS.Publish.dll文件复制到网站的bin文件夹下覆盖同名文件,就OK了。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187593.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • matlabinterp1函数_matlab中subs

    matlabinterp1函数_matlab中subs今天通过几个实例对matlab中的interp1插值函数进行了深入的理解,下面通过几组数据进行说明。插值法:插值法又称“内插法”,是利用函数f(x)在某区间中已知的若干点的函数值,作出适当的特定函

  • 矩阵分析:向量范数,矩阵范数,范数应用[通俗易懂]

    矩阵分析:向量范数,矩阵范数,范数应用[通俗易懂]1,向量范数1.1,向量范数的定义和例子设是复数域上的维向量空间,称函数为向量范数,是指对所有,有下列性质:(1)非负性:,并且当且仅当。(2)齐次性:对任何,。(3)三角不等式:若对任意,有:(1)(2)(3)证明(3):根据三角不等式,有:两式分别相减可得:设,则下列实值函数都是上的向量范数:(1)2范数:(2)1范数:(3)范数:(4)p范数:,当时,分别得到向量1范数和2范数,并且可以证明…

  • 发布版sha1怎么获取_sha1.rar

    发布版sha1怎么获取_sha1.rar获取SHA1值首先,绝大多数App在调试时使用的签名文件(debugkeystore)和最终App发布使用的签名文件(自定义的keystore)是不同的,不同签名文件的SHA1值也是不同的。下面提供几种获取SHA1值的方式:通过Eclipse编译器获取SHA1使用adt22以上版本,可以在eclipse中直接查看。Windows:依次在eclipse中打开Window-&gt;…

  • Pycharm汉化及衍生问题

    Pycharm汉化及衍生问题1、Pycharm是英文软件毫无疑问,pycharm是一款全英文的软件,对于英文一般的新手来说,使用起来上手较慢,于是汉化就是一种刚需。2、如何汉化网上查找,下载汉化包“resources_cn”,然后将“resources_cn”汉化包复制到“C:\ProgramFiles\JetBrains\PyCharmCommunityEdition2019.3\lib”(每个人的安装…

  • hashmap为什么线程不安全面试_hashtable是线程安全的吗

    hashmap为什么线程不安全面试_hashtable是线程安全的吗HashMap为什么线程不安全?文章目录HashMap为什么线程不安全?前言项目环境1.put方法中的++modCount问题2.扩容期间取值不准确3.同时put碰撞导致数据丢失4.可见性问题5.扩容头插法可能导致的循环链表问题6.总结7.参考前言本文从以下几个方面来讨论HashMap为什么是线程不安全的put方法中的modCount++问题扩容期间取值不准确同时put碰撞导致数据丢失可见性问题扩容头插法可能导致的循环链表问题(jdk1.8以前版本)jd

    2022年10月11日
  • 2021.12.13激活码(JetBrains全家桶)

    (2021.12.13激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~00OE5RWT28-eyJsaWNlb…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号