澳门新葡萄京官网首页 19

DedeCms模板防盗以及安全设置的一些小技巧

在 ASP、PHP 中,都有包含文件这一说法,在 KimgCMS
模板中,通过外部模板、外部模板来实现类似功能。

就目前而言,织梦DedeCms是最受广大站长欢迎的一套内容管理系统,用的人多,研究的人也多,那么网站模板该如何防盗及安全性的问题就需要认真对待了。

在这里不对模型、模板设置、category,list,show等静态页面引入、配置文件(cachesconfigsdatabase.php 和
cachesconfigssystem.php)、缓存清理、附件地址替换、等逻辑讲解。

外部模板就是整个站点的基本框架,比如页眉、页脚,然后在其中插入内部模板。在建立栏目时,通过指定外部模板文件和内部模板文件,实现整个网页的输出。

我们花钱做漂亮的织梦模板,被别人盗走,你也没什么办法,只能认栽了,网上这种事屡见不鲜了,所以我们要防范于未然,在网站上线之前就需要做好模板的防盗。

安装CMS-》删除所有栏目-》拷贝default文件夹-》配置文件夹里面的config文件-》后台重新配置站点,选模板风格-》开始引入HTML、JS、建立模型、建立栏目,为栏目选择模板、、、

由于一个栏目只能指定一个内部模板,就相当于一个页面只能使用一个包含文件,所以在稍大的站点中,常常不能满足需要。所以在建立模板时,要权衡,想想一个区块是放在外部模板中还是内部模板中:如果不通用的放在了外部模板,将导致不得不建立多个外部模板;如果较通用的放在了内部模板,将导致每个内部模板不得不写相同的内容。

注:本篇模板防盗安全设置,针对的是dedecms程序本身,不涉及其他安全设置。

只是罗列一些数据标签,比如如何获取当前栏目的上级的上级栏目url或者栏目名称、或者站点常量等常用数据标签总结,方便查阅。

下面清源就跟大家说下常见的方式,这些方法对技术有限的人来说,可以起到模板防盗作用,对真正的高手来说,大多数网站都是仿不了的,这个大家都需要知道。

网页title信息:

方法一:修改系统默认模板文件夹名字,最简单,也很实用
步骤:后台->系统->系统基本参数->站点设置->模板默认风格->default
澳门新葡萄京官网首页,把default改成你自己取的名字,然后进FTP,打开templets文件夹,把default名字改成一致,这样别人就不知道你网站模板文件夹名字了。

1 <title>{if isset($SEO['title']) && !empty($SEO['title'])}{$SEO['title']}{/if}{$SEO['site_title']}</title>

方法二:把系统默认的.htm模板文件名改一改。
大家都知道默认的模板文件的名字,如index.htm(首页),list_article.htm(文章列表页),article_article.htm(文章内容页)等等,直接就给扒下来。
所以,我们把这些默认的名字改一改,然后去栏目管理处,重新指定一下模板文件就可以增加一下模板的安全了。

站点地址:

1、认识一下默认模板文件的名字及作用
首页模板:/templets/default/index.html
文章频道首页:/templets/default/index_article.htm
文章列表页:/templets/default/list_article.htm
文章内容页:/templets/default/article_article.htm
图集频道首页:/templets/default/index_image.htm
图集列表页:/templets/default/list_image.htm
…..
具体模板名介绍:织梦模板dedecms文件名介绍与说明

1 <a href="{siteurl($siteid)}" class="logo">
2    <img src="{IMG_PATH}img/logo.png" alt="澳门新葡萄京官网首页 1">
3 </a>

2、不同栏目各自指定不同的模板
步骤:核心->常用操作->网站栏目管理->点击右侧对应栏目的“更改”链接->高级选项->手动指定模板
详细操作方法:如何自定义织梦栏目使用不同模板文件

获取栏目ID为1下面所有的栏目信息:

3、完成以上2步,生成更新一下栏目就行了。

获取某一栏目下的所有栏目信息:
澳门新葡萄京官网首页 2

方法三:这个方法是上2个的结合,说起来也简单
1、后台不修改默认模板风格default的名字,在templets文件夹里面新建一个文件夹,自己取名。

澳门新葡萄京官网首页 3

2、把用到的模板文件上传到这个文件夹里面;
这里需要有一个注意,因为后台没有修改默认的模板风格位置,所有,首页、列表、内容等模板文件引用的通用页头(head.html)、页尾(footer.htm),就需要修改一下,不然就不显示了页头页尾,方法如下:(PS:T不错的PHP
Q扣峮:276167802,验证:csl)
{dede:include filename=”123456/head.htm”/}
如果你自己建立的模板文件夹名字是123456,调用代码里就写123456。
搜索页面、tag页面,都放在默认的default里面,如果放在自己建的文件夹里面,系统不认。

1 {pc:content action="category" catid="1" num="25" siteid="$siteid" order="listorder ASC" return="data"}
2      <?php $i = 1; ?>
3     {loop $data $k $v}
4      <a href="{$v[url]}"; class="navOption navOption{$i} <?php if($i<=3){echo "fl";}?> <?php if($i>3){echo "fr";}?>">{$v[catdir]}{$v[catname]}</a>
5     <?php $i++; ?>
6    {/loop}
7 {/pc}

3、按照方法二的步骤,手动指定各个栏目的模板。

 获取指定栏目ID下面的指定某一条信息:

好多新手在用dedecms建站的时候,没有重视这个,等模板被盗了,才发现,很让人生气,所以,我们要提前做好这些防盗的准备,提高模板的安全性。

澳门新葡萄京官网首页 4

以上内容写的可能比较繁琐,主要是为了让大家能够更好的去理解。本文介绍了DedeCms模板
如何防被盗以及安全设置的一些方法,希望本文对读者有所帮助,感谢阅读本文。

此时如何获取ID为2的里面的内容:

 1 <div class="textWrp">
 2           附近的车站:<br><br>
 3              {pc:content action="lists" catid="2" num="25" siteid="$siteid" order="listorder ASC" return="data"}
 4                   {loop $data $k $v}
 5                     <?php if($k==2){ ?>
 6                        {$v[description]}
 7                     <?php }?>
 8                  {/loop}
 9            {/pc}
10     </div>

此时是获取栏目ID为2也就是公共设置下面的ID为2的内容。

 

action为list或者category,一个是获取栏目信息,一个是获取栏目下面的内容信息。而order之中的排序,listorder是可以设置的,上面的排序左边那个可以输入排序ID进行排序。

数据表之中自带的在主表,自己设置的字段默认在副表,二者一并查出需要加上moreinfo=”1″.

 

在点击某一栏目下面的某一篇文章详情的时候,页面跳转,此时不需要在用PC标签进行查询数据,直接就是酱紫的

1 <div class="content">
2        <h2>{$title}</h2>
3        <p>{$content}</p>
4 </div>

页码切换(show页面):

1 <div class="changeArticle clearfix">
2        <a href="{$previous_page[url]}" class="prev_article fl">上一篇:{$previous_page[title]}</a>
3        <a href="{$next_page[url]}" class="next_article fr">下一篇:{$next_page[title]}</a>
4  </div>

获取某一栏目下的所有内容信息:

澳门新葡萄京官网首页 5

比如此时我们要获取到公司简介(栏目下面已经没有栏目)栏目下面的所有内容(一共四篇文章):

澳门新葡萄京官网首页 6

数据标签:

 1 <div class="bg">
 2            <div class="imgl">
 3                 <img src="{IMG_PATH}img/img06.jpg" width="204" height="504" alt="澳门新葡萄京官网首页 7">
 4            </div>
 5             <ul class="showArea">
 6                     {pc:content action="lists" catid="$catid" moreinfo="1" num="25" page="$page"}
 7                     <?php $i = 1; ?>
 8                     {loop $data $v}
 9                         <li class="<?php if($i==1){echo "now";}?>">
10                             <div class="title">
11                                 <h2>{$v[title]}</h2>
12                                 <h3>{$v[en_name]}</h3>
13                             </div>
14                             <div class="content">
15                                 {$v[content]}
16                             </div>
17                         </li>
18                         <?php $i++; ?>
19                    {/loop}
20              {/pc}
21         </ul>
22   </div>

指定栏目对应的url:

1 <a href="{$CATEGORYS[7][url]}" class="backToList" >查看更多</a>

此时点击查看更多就相当于点击顶部导航栏的 “工程案例”。

 澳门新葡萄京官网首页 8

假如地址栏上的catid是38,而我们想获取38的上级栏目的名称:

1 {$CATEGORYS[$CAT[parentid]][catname]}   //上级
  {$CATEGORYS[$catid][catname]}    //当前栏目名称

如何获取当前栏目ID的父栏目下面的所有子栏目信息:

1 {pc:content action="category" catid="$CATEGORYS[$catid][parentid]" num="25" siteid="$siteid" order="listorder ASC"
 return="data"}
2         <?php $i = 0; ?>
3            {loop $data $k $v}
4                 <li style="<?php if($i==0){echo "border:none";}?>">{$v[catname]}
              <i class="{if $v[catid]==$catid} cur {/if}"></i>
            </li>
5          <?php $i++; ?>
6       {/loop}
7   {/pc}

时间处理:

1     <h3 class="data_box">
2           <i>{date('d', $v['inputtime'])}</i>
3           <em>{date('Y-m', $v['inputtime'])}</em>
4     </h3>

获取当前栏目的父栏目下面的其中某一特定栏目的栏目信息:

1 {pc:content action="category" catid="$CATEGORYS[$catid][parentid]" num="25"
     siteid="$siteid" order="listorder ASC" return="data"}
2   {loop $data $k $v}
3    <?php if($k==39){ ?>
4     <dt>{$v[catname]}<i>{$v[description]}</i><em><b>首页</b>&nbsp;>&nbsp;<b>{$CATEGORYS[$catid][catname]}</b></em></dt>//这里有获取当前内容所属栏目的栏目名称
5     <?php } ?>
6   {/loop}
7 {/pc}

上面呢,是获取当前栏目的父栏目下面的ID为39的子栏目的栏目信息;

1 {template "content","footer"}

包含某个公共部分。

分页的页码:

1 {$pages}  但是在PC标签里面需要加上: page="$page"

 拷贝default目录,然后一点点替换content文件夹里面的文件,与数据标签,选用哪个模板文件夹,在站点配置里面设置,扩展-》菜单管理可以设置后台菜单。

如何取出数组data之中的第六个数值:

 1 {pc:content action="lists" catid="21" moreinfo="1" num="25" page="$page"}
 2                             <?php $key=1;?>
 3                                 {loop $data $k $v}
 4                                 <?php if($key==6){ ?>
 5                             <div class="hb" id="multi" style="background-image:url({$v[shouyezhanshitupian]});">
 6                                 <a href="{$v[url]}">
 7                                     <div class="li_box liz li_h1" >
 8                                         <h1>{$v[shouyexiaobiaoti]}</h1>
 9                                         <p>{$v[chanpingongneng]}</p>
10                                     </div>
11                                 </a>
12                             </div>
13                             <?php } ?>
14                             <?php $key++;?>
15                         {/loop}
16                      {/pc}

或者数组之中的任意个元素

 如何加载页面时候根据有无page数据(GET参数)来选择是否调用JS方法:

1 <script type="text/javascript">    
2      if(<?php echo $_GET['page'] ? $_GET['page'] : 0; ?>){
3             c_tab('#left_tab3','au3','au_nav');
4         }
5 </script>

 后台登陆首页:

Phpcms->modules->admin->templates->login.tpl.php澳门新葡萄京官网首页 9

澳门新葡萄京官网首页 10澳门新葡萄京官网首页 11

  1 <?php defined('IN_ADMIN') or exit('No permission resources.'); ?>
  2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3 <html xmlns="http://www.w3.org/1999/xhtml">
  4 <head>
  5 <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET;?>" />
  6 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
  7 <title><?php echo L('phpcms_logon')?></title>
  8 <style type="text/css">
  9 html{
 10     background: #524B8E;
 11 }
 12 body{
 13     font-family: "Microsoft YaHei", "微软雅黑", Arial, Helv, Helvetica, sans-serif;}
 14 div {overflow: hidden;*display: inline-block;}
 15 div {*display: block;}
 16 .login_box {
 17     /*background: url(<?php echo IMG_PATH?>admin_img/login_bg.jpg) no-repeat;*/
 18     position: absolute;
 19     left: 50%;
 20     top: 50%;
 21     margin-left: -375px;
 22     margin-top: -150px;
 23     width: 750px;
 24     height: 300px;
 25     background: #fff;
 26     overflow: hidden;
 27     box-shadow: 0 0 25px 0px rgb(34, 29, 81);
 28 }
 29 .login_iptbox {
 30     padding: 50px 0 0 301px;
 31     font-size: 12px;
 32     overflow: visible;
 33 }
 34 .admin_logo{
 35     position: absolute;
 36     left: 0;
 37     top: 0;
 38     width: 301px;
 39 }
 40 .admin_logo img{
 41     width: 301px;
 42     height: 301px;
 43 }
 44 .login_iptbox .ipt {
 45     height: 30px;
 46     width: 195px;
 47     /*background: url(<?php echo IMG_PATH?>admin_img/ipt_bg.jpg) repeat-x;*/
 48     *line-height: 24px;
 49     overflow: hidden;
 50     border: 1px solid #C9C7E1;
 51     font-size: 25px;
 52     text-align: center;
 53 }
 54 <?php if(SYS_STYLE=='en') {
 55     ?>
 56     .login_iptbox .ipt {
 57         width: 100px;
 58         margin-right: 12px;
 59     }
 60     <?php
 61 }
 62 ?>
 63 .login_iptbox label {
 64     width: 150px;
 65     text-align: right;
 66       font-size: 13px;
 67     display: inline-block;
 68     *display: inline;
 69     *zoom: 1;
 70 }
 71 .login_iptbox .ipt_reg {
 72     width: 75px;
 73     /*background: url(<?php echo IMG_PATH?>admin_img/ipt_bg.jpg) repeat-x;*/
 74     *overflow: hidden;
 75     padding: 2px 0 2px 2px;
 76     font-size: 16px;
 77     font-weight: bold;
 78     text-align: center;
 79 }
 80 .login_tj_btn {
 81     margin: 0 auto;
 82     padding: 10px 0;
 83     /*background: url(<?php echo IMG_PATH?>admin_img/login_dl_btn.jpg) no-repeat 0px 0px;*/
 84     background-color: #6961AB;
 85     color: #fff;
 86     width: 250px;
 87     height: 37px;
 88     border: none;
 89     cursor: pointer;
 90     padding: 0px;
 91     display: block;
 92     font-family: "Microsoft YaHei", "微软雅黑", Arial, Helv, Helvetica, sans-serif;
 93 }
 94 .yzm {
 95     height: 36px;
 96     display: inline-block;
 97     *display: inline;
 98     *zoom: 1;
 99 }
100 .yzm img{
101     width: 110px;
102     height: 36px;
103     vertical-align: middle;
104 }
105 .cr {
106     font-size: 12px;
107     font-style: inherit;
108     text-align: center;
109     color: #ccc;
110     position: absolute;
111     bottom: 5px;
112     left: 473px;
113 }
114 .cr a {
115     color: #ccc;
116     text-decoration: none;
117 }
118 </style>
119 <script language="JavaScript">
120 <!--
121     if(top!=self)
122     if(self!=top) top.location=self.location;
123 //-->
124 </script>
125 </head>
126 <body onload="javascript:document.myform.username.focus();">
127 <div id="login_bg" class="login_box">
128     <a class="admin_logo" href="#"><img src="<?php%20echo%20IMG_PATH?>admin_img/admin_logo.jpg" alt="澳门新葡萄京官网首页 12" /></a>
129     <div class="login_iptbox">
130         <form action="index.php?m=admin&c=index&a=login&dosubmit=1" method="post" name="myform">
131             <label><?php echo L('username')?>:</label>
132             <input name="username" type="text" class="ipt" value="" />
133             <br/>
134             <br/>
135             <label><?php echo L('password')?>:</label>
136             <input name="password" type="password" class="ipt" value="" />
137             <br/>
138             <br/>
139             <label><?php echo L('security_code')?>:</label>
140             <input name="code" type="text" class="ipt ipt_reg" onfocus="document.getElementById('yzm').style.display='block'" />
141             <?php echo form::checkcode('code_img')?>
142             <br/>
143             <br/>
144             <!-- <div id="yzm" class="yzm"><?php echo form::checkcode('code_img')?><br /><a href="javascript:document.getElementById('code_img').src='<?php%20echo%20SITE_PROTOCOL.SITE_URL.WEB_PATH;?>api.php?op=checkcode&m=admin&c=index&a=checkcode&time='+Math.random();void(0);"><?php echo L('click_change_validate')?></a></div> -->
145             <input name="dosubmit" value="登 录" type="submit" class="login_tj_btn" />
146         </form>
147     </div>
148 <div class="cr">Power By <a href="#">广州承胜</a></div>
149 </div>
150 </body>
151 </html>

View Code

 前台表单:

澳门新葡萄京官网首页 13

澳门新葡萄京官网首页 14

然后将前台提交信息的表单name属性改成跟后台一样的;

澳门新葡萄京官网首页 15

改成这样,隐藏输入值也要传进去的

前台表单action改成那个调用的javascript代码;

当点击进去新闻内页时候,显示的上一篇下一篇按钮

1 <div class="changeArticle clearfix">
2                 <a href="{$previous_page[url]}" class="prev_article fl">上一篇:{$previous_page[title]}</a>
3                 <a href="{$next_page[url]}" class="next_article fr">下一篇:{$next_page[title]}</a>
4             </div>

页码一般在list页面,直接{$page}就OK了,

page=”$page”记得在Pc标签加上这一句话就好了,还有就是搜索功能的实现:

思路就是照着官方的发送搜索信息的表单改action还有hidden的数值:

首先当然是需要建立搜索字段了

澳门新葡萄京官网首页 16

主要建立了搜索分类时候,得到的typeid要是正确的,了解???发送表单要的

澳门新葡萄京官网首页 17

 1 <form action="{APP_PATH}index.php" method="get" target="_blank" >
 2                    
 3                              <!-- <input type="hidden" name="m" value="search"/>
 4                              <input type="hidden" name="c" value="index"/>
 5                              <input type="hidden" name="a" value="init"/>
 6                              <input type="hidden" name="typeid" value="54" id="typeid"/>
 7                              <input type="hidden" name="siteid" value="1" id="siteid"/>
 8                          <input type="text" name="q" id="q"/>
 9                          <input type="submit" value="搜 索" class="button" />-->
10                         <!-- {php $j=0}
11                         {php $search_model = getcache('search_model_'.$siteid, 'search');}
12                         {loop $search_model $k=>$v}
13                         {php $j++;}
14                             <a href="javascript:;" onclick="setmodel({$v['typeid']}, $(this));" style="outline:medium none;" hidefocus="true" {if $j==1 && $typeid=$v['typeid']} class="on" {/if}>{$v['name']}</a>{if $j != count($search_model)} | {/if}
15                           {/loop}
16                           {php unset($j);} -->
17                           <input type="hidden" name="m" value="search"/>
18                           <input type="hidden" name="c" value="index"/>
19                           <input type="hidden" name="a" value="init"/>
20                           <input type="hidden" name="typeid" value="54" id="typeid"/>
21                           <input type="hidden" name="siteid" value="1" id="siteid"/>
22                   <input type="text" class="text" name="q" id="q"style="float:left"/>
23                   <input type="submit" value="搜 索" class="button" style="float:left"/>
24             </form>

澳门新葡萄京官网首页 18

主要看看URL有没拼接正确,

然后就是找到搜索结果展示的页面,找到数据表单(搜索结果数据)并且改成自己网站的页面就OK了

澳门新葡萄京官网首页 19

这个就是搜索结果页面了,大兄弟,这TM还没思路吗,我TM都给你做完了好吗!!!

发表评论

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