织梦后台精简可以删掉的不需要的文件
如果是一开始就不想要的话,安装时plus目录下进行如下操作。
删除:guestbook文件夹【留言板,后面我们安装更合适的留言本插件】;
删除:task文件夹和task.php【计划任务控制文件】
删除:ad_js.php【广告】
删除:bookfeedback.php和bookfeedback_js.php【图书评论和评论调用文件,存在注入漏洞,不安全】
删除:bshare.php【分享到插件】
删除:car.php、posttocar.php和carbuyaction.php【购物车】
删除:comments_frame.php【调用评论,存在安全漏洞】
删除:digg_ajax.php和digg_frame.php【顶踩】
删除:download.php和disdls.php【下载和次数统计】
删除:erraddsave.php【纠错】
删除:feedback.php、feedback_ajax.php、feedback_js.php【评论】
删除:guestbook.php【留言】
删除:stow.php【内容收藏】
删除:vote.php【投票】
删除member目录【会员目录,一般企业站不需要】
删除:special【专题功能】
删除:company【企业模块】
安全上的设置dede目录下需要删除的文件及原因。
删除:以file_xx.php开头的系列文件及tpl.php【文件管理器,安全隐患很大】
删除:soft_add.php、soft_config.php、soft_edit.php【软件下载类,存在安全隐患】
删除:mail_file_manage.php、mail_getfile.php、mail_send.php、mail_title.php、mail_title_send.php、mail_type.php【邮件发送】
删除:media_add.php、media_edit.php、media_main.php【视频控制文件】
删除:以story_xxx.php开头的系列文件【小说功能】
删除:ad_add.php、ad_edit.php、ad_main.php【广告添加部分】
删除:cards_make.php、cards_manage.php、cards_type.php【点卡管理功能文件】
删除:以co_xx.php开通的文件【采集控制文件】
删除:erraddsave.php【纠错管理】
删除:feedback_edit.php、feedback_main.php【评论管理】
删除:以group_xx.php开头的系列php文件【圈子功能】
删除:plus_bshare.php【分享到管理】
删除:以shops_xx.php开头的系列文件【商城系统】
删除:spec_add.php、spec_edit.php【专题管理】
删除:以templets_xx.php开头的系列文件【模板管理】
删除:vote_add.php、vote_edit.php、vote_getcode.php【投票模块】
删除: sys_sql_query.php
还可以删掉旧的编辑器\include\FCKeditor\
/include/uploadsafe.inc.php dedecms注入漏洞 需要修改一下 参考 http://www.dedecms51.com/dedejiaocheng/guzha/152194.html
主要影响安全的文件已经删除,请根据您的需要进行操作。如果想更一步精简,可以删除掉/dede/templets/下对应的文件模板。
1.安装时数据库的前缀不用dedecms默认的前缀dede_,可以改成其他的名称如diy_
2.装好dede织梦cms系统后删除装文件install
3.修改织梦后台文件目录:把默认的dede改成其他名字
4.织梦后台后台密码尽量复杂化:密码应该由大写字母、小写字母和数字组成
5.将系统的data目录迁移到根目录以外:data目录是系统缓存和配置文件的目录,一般都有可以读写的权限,只要是能够写入的目录都可能存在安全隐患,很多站长甚至给予这个目录可执行的权限,更是非常危险,所以我们建议将这个data目录搬移出Web可访问目录之外
6.不用会员系统,就把member整个文件夹全部
7.用不到留言本,就把plus下的guestbook文件删除
8.不用下载功能,就把管理目录下的soft__xxx_xxx.php删除
9.如果是使用HTML,可以把plus下的相应文件和根目录下的index.php删除
10.不用专题功能可以把special文件夹删除
11.用不到企业模块可以把company文件夹删除
12.不用下载发布功能可以把管理目录下soft__xxx_xxx.php删除
13.删除后台的文件式管理器:通过后台的文件式管理器,可以修改网站的任何文件,为了安全,建议把管理目录下file_manage_xxx.php删除
14.如果不需要SQL命令运行器的可以把管理目录下的sys_sql_query.php删除
15.另外一些用不到的文件都删除,还可以把数据库里面不用的表删除掉
16.对织梦及时升级打补丁。作为织梦官网,升级也是经常在做的,我们在登陆网站后台的时候,如果看到有升级提醒,需要及时升级文件,以防止因为没有升级造成漏洞入侵。一般常见的安全,官网会第一时间发现,并且提供补丁
17.不要忘记定期对数据备份。对于备份大家都知道,有利网站的安全,定期备份数据是任何网站都必须做的,不仅仅是DEDECMS
这些是常用的防攻击方法,但是,道高一尺,魔高一丈,网站排名好了,流量多了,就会有人想尽办法攻击你的网站,最好的办法是定期备份,并把备份文件下载到电脑安全的地方保存好,网站如果被攻击,把空间里面的文件全部删除,上传备份文件即可。
欢迎访问每天进步网:http://meitianjinbu.cn/
阅读全文
机子是仿五羊本田的,卖配件的老板说是和5羊本田通用,这个滤芯是100的,我刚开始还不明白,他说了第2遍我才反应过来是排量,回到家我就换上,明天再看看动力是不是强一点了,话说这破车子油耗真高啊,估计要换这个,还有要清洗化油器,有空再说了
阅读全文
一冲动,中午就下贺街去要了,在贺州大道下面等班车,但是没有车下来,后来有个顺路的的士25块送我下去,她说班车不走这边,下面有个横杠拦着,大车过不了,班车都是绕行到市区里面的,下到贺街,等了几分钟,那个人把车开出来了,检查了一下,没有明显烧机油,但是扭大油门,烟很多,可能化油器有问题,勉强能用吧,开价350,砍刀到300,微信转账,然后开车到旁边中石化加油站加油,没有带现金,要微信加油,弄了几分钟才把程序弄完,加油,加了大概20来块钱,然后开回八步,速度最高60,上不去的,前刹车有点问题,好像有点磨刹车盘,发动机抖的很厉害,不过想想价格,勉强接受了。昨天从贺州街上来,今天上午去桥底下加机油,然后跑了一趟单位,回了一次家,去了两次西区,然后晚上开回家,用了一半油了,嗯,有空看一下里程,算一下油耗。
刚才百度地图拉了一下,大概走了37公里那样,用了一半油,大概10块钱,每公里2毛7那样,今天油价7.19元,10块钱大概1.39升,百公里3.76升,我靠,好高
我的小车综合油耗才百公里8升
阅读全文
把一大堆旧名片全丢了,放着碍地方,用微信账号登陆,手机号码用1100那个
阅读全文
对方还要要求我一个星期内如果坏的话退回来,估计没有什么大问题
阅读全文
获取IP地址
<?php function GetIP() { if ($_SERVER["HTTP_X_FORWARDED_FOR"]) $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; else if ($_SERVER["HTTP_CLIENT_IP"]) $ip = $_SERVER["HTTP_CLIENT_IP"]; else if ($_SERVER["REMOTE_ADDR"]) $ip = $_SERVER["REMOTE_ADDR"]; else if (getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); else $ip = "Unknown"; return $ip; } echo GetIP(); ?>
方法二
function getip () { if (getenv(‘http_client_ip’)) { $ip = getenv(‘http_client_ip’); } else if (getenv(‘http_x_forwarded_for’)) { $ip = getenv(‘http_x_forwarded_for’); } else if (getenv(‘remote_addr’)) { $ip = getenv(‘remote_addr’); } else { $ip = $_server[‘remote_addr’]; } return $ip;
PHP通过IP地址判断用户所在城市 上文已经获得了用户IP地址,接下来,我们就是根据这个IP地址获得用户所在城市了。开始之前,我们需要下载一个现成的数据库QQ IP数据库。 最新IP地址数据库://www.jb51.net/softs/10529.html 使用方法:解压后QQWry.Dat就是我们想要IP地址数据库,我们新建一个ipcity文件夹,将数据库放在下面。QQ IP数据库使用非常方便,数据也很齐全,你可以及时关注官方更新以保持数据最新,强力推荐一下:) 接下来,我们在上面的ipcity目录下新建一个ipaddress.php文件,直接复制以下代码进去即可,重要的地方也作了相应注释。B段:
<? /* 函数名称:ipCity 参数说明:$userip——用户IP地址 函数功能:PHP通过IP地址判断用户所在城市 author:lee contact:xpsem2010@gmail.com */ function ipCity($userip) { //IP数据库路径,这里用的是QQ IP数据库 20110405 纯真版 $dat_path = ‘QQWry.dat’; //判断IP地址是否有效 if(!ereg("^([0-9]{1,3}.){3}[0-9]{1,3}$", $userip)){ return ‘IP Address Invalid’; } //打开IP数据库 if(!$fd = @fopen($dat_path, ‘rb’)){ return ‘IP data file not exists or access denied’; } //explode函数分解IP地址,运算得出整数形结果 $userip = explode(‘.’, $userip); $useripNum = $userip[0] * 16777216 + $userip[1] * 65536 + $userip[2] * 256 + $userip[3]; //获取IP地址索引开始和结束位置 $DataBegin = fread($fd, 4); $DataEnd = fread($fd, 4); $useripbegin = implode(”, unpack(‘L’, $DataBegin)); if($useripbegin < 0) $useripbegin += pow(2, 32); $useripend = implode(”, unpack(‘L’, $DataEnd)); if($useripend < 0) $useripend += pow(2, 32); $useripAllNum = ($useripend – $useripbegin) / 7 + 1; $BeginNum = 0; $EndNum = $useripAllNum; //使用二分查找法从索引记录中搜索匹配的IP地址记录 while($userip1num>$useripNum || $userip2num<$useripNum) { $Middle= intval(($EndNum + $BeginNum) / 2); //偏移指针到索引位置读取4个字节 fseek($fd, $useripbegin + 7 * $Middle); $useripData1 = fread($fd, 4); if(strlen($useripData1) < 4) { fclose($fd); return ‘File Error’; } //提取出来的数据转换成长整形,如果数据是负数则加上2的32次幂 $userip1num = implode(”, unpack(‘L’, $useripData1)); if($userip1num < 0) $userip1num += pow(2, 32); //提取的长整型数大于我们IP地址则修改结束位置进行下一次循环 if($userip1num > $useripNum) { $EndNum = $Middle; continue; } //取完上一个索引后取下一个索引 $DataSeek = fread($fd, 3); if(strlen($DataSeek) < 3) { fclose($fd); return ‘File Error’; } $DataSeek = implode(”, unpack(‘L’, $DataSeek.chr(0))); fseek($fd, $DataSeek); $useripData2 = fread($fd, 4); if(strlen($useripData2) < 4) { fclose($fd); return ‘File Error’; } $userip2num = implode(”, unpack(‘L’, $useripData2)); if($userip2num < 0) $userip2num += pow(2, 32); //找不到IP地址对应城市 if($userip2num < $useripNum) { if($Middle == $BeginNum) { fclose($fd); return ‘No Data’; } $BeginNum = $Middle; } } $useripFlag = fread($fd, 1); if($useripFlag == chr(1)) { $useripSeek = fread($fd, 3); if(strlen($useripSeek) < 3) { fclose($fd); return ‘System Error’; } $useripSeek = implode(”, unpack(‘L’, $useripSeek.chr(0))); fseek($fd, $useripSeek); $useripFlag = fread($fd, 1); } if($useripFlag == chr(2)) { $AddrSeek = fread($fd, 3); if(strlen($AddrSeek) < 3) { fclose($fd); return ‘System Error’; } $useripFlag = fread($fd, 1); if($useripFlag == chr(2)) { $AddrSeek2 = fread($fd, 3); if(strlen($AddrSeek2) < 3) { fclose($fd); return ‘System Error’; } $AddrSeek2 = implode(”, unpack(‘L’, $AddrSeek2.chr(0))); fseek($fd, $AddrSeek2); } else { fseek($fd, -1, SEEK_CUR); } while(($char = fread($fd, 1)) != chr(0)) $useripAddr2 .= $char; $AddrSeek = implode(”, unpack(‘L’, $AddrSeek.chr(0))); fseek($fd, $AddrSeek); while(($char = fread($fd, 1)) != chr(0)) $useripAddr1 .= $char; } else { fseek($fd, -1, SEEK_CUR); while(($char = fread($fd, 1)) != chr(0)) $useripAddr1 .= $char; $useripFlag = fread($fd, 1); if($useripFlag == chr(2)) { $AddrSeek2 = fread($fd, 3); if(strlen($AddrSeek2) < 3) { fclose($fd); return ‘System Error’; } $AddrSeek2 = implode(”, unpack(‘L’, $AddrSeek2.chr(0))); fseek($fd, $AddrSeek2); } else { fseek($fd, -1, SEEK_CUR); } while(($char = fread($fd, 1)) != chr(0)){ $useripAddr2 .= $char; } } fclose($fd); //返回IP地址对应的城市结果 if(preg_match(‘/http/i’, $useripAddr2)) { $useripAddr2 = ”; } $useripaddr = "$useripAddr1 $useripAddr2"; $useripaddr = preg_replace(‘/CZ88.Net/is’, ”, $useripaddr); $useripaddr = preg_replace(‘/^s*/is’, ”, $useripaddr); $useripaddr = preg_replace(‘/s*$/is’, ”, $useripaddr); if(preg_match(‘/http/i’, $useripaddr) || $useripaddr == ”) { $useripaddr = ‘No Data’; } return $useripaddr; } ?>
PHP根据IP地址实现城市切换或跳转 到这里,其实问题已经很简单了,用简单的js就通通搞定。C段如下: //根据IP地址跳转指定页面js取得城市
var city='<?echo ipCity($xp_UserIp);?>’;
//根据IP地址所有城市跳转到指定页面
if(city.indexOf("上海市")>=0){ window.location.href=http://shanghai.demo.com/; }
将开头的A段代码和上面的C段代码分别放在B段代码的头和尾,然后我们在需要跳转的页面加入以下代码:
<script src="/ipcity/ipaddress.php" type="text/javascript" language="javascript"></script>
刷新页面,是不是达到预想的效果了呢? 上面的代码只是简单的判断了ip那里就跳到那,如果出现如,我想把湖南所有IP都跳到长沙去,那像衡阳,刘阳,耒阳 这些就要作多次父线处理了,要想知道请看下集。
阅读全文
首先把这个代码复制到e/class/userfun.php 里面去:
<?php
//—————————用户自定义标签函数文件
//显示结合项筛选选项
function user_ShowFieldandChange($val,$fieldandvar,$fieldandcss,$changefieldandcss,$fieldexp,$valexp,$val3,$ecms=0){
global $public_r,$navclassid;
$fieldandval=$val;
$fieldandvart=$fieldandvar;
$fieldandvar=str_replace(‘#’,’,’,$fieldandvar);
//附加参数
$urlcs=”;
$mid=(int)$_GET[‘mid’];
if($mid)
{
$urlcs.=’&mid=’.$mid;
}
if($_GET[‘classid’])
{
$classid=RepPostVar($_GET[‘classid’]);
$urlcs.=’&classid=’.$classid;
}
else
{
$urlcs.=’&classid=’.$navclassid;
}
if($_GET[‘ttid’])
{
$ttid=RepPostVar($_GET[‘ttid’]);
$urlcs.=’&ttid=’.$ttid;
}
if($_GET[‘ztid’])
{
$ztid=RepPostVar($_GET[‘ztid’]);
$urlcs.=’&ztid=’.$ztid;
}
if($_GET[‘endtime’])
{
$starttime=RepPostVar($_GET[‘starttime’]);
$endtime=RepPostVar($_GET[‘endtime’]);
$urlcs.=’&starttime=’.$starttime.’&endtime=’.$endtime;
}
$line=(int)$_GET[‘line’];
if($line)
{
$urlcs.=’&line=’.$line;
}
$tempid=(int)$_GET[‘tempid’];
if($tempid)
{
$urlcs.=’&tempid=’.$tempid;
}
if($_GET[‘orderby’])
{
$orderby=RepPostVar($_GET[‘orderby’]);
$myorder=(int)$_GET[‘myorder’];
$urlcs.=’&orderby=’.$orderby.’&myorder=’.$myorder;
}
//间隔字符
$fieldexpr=explode(‘|’,$fieldexp);
$valexpr=explode(‘|’,$valexp);
//上下级
$frt=explode(‘,’,$fieldandvart);
$ftcount=count($frt);
//输出选项
$fr=explode(‘,’,$fieldandvar);
$fcount=count($fr);
$allstr=”;
foreach ($_GET as $key=>$val){ if($val && in_array($key, $fr)){ $url_this=$key.’=’.urlencode($val); $url=str_replace($url_this,”,$_SERVER[REQUEST_URI]); $tj=’已选择条件:’; $yixuan.='<a class="del_jhx" href="’.$url.’">’.$val.’x</a> ‘; } } echo $tj.$yixuan;
$urladd=”;
for($i=0;$i<$fcount;$i++)
{ $nofield="";
$field=$fr[$i];
for($ti=0;$ti<$ftcount;$ti++)
{
$frtval=explode(‘#’,$frt[$ti]);
if($field==$frtval[0]){$nofield="&".$frtval[1]."=";}
}
//选项链接
$getval=”;
if($_GET[$field])
{
$getval=htmlspecialchars($_GET[$field],ENT_QUOTES);
$urladd.=’&’.$field.’=’.urlencode($getval);
}
//选项说明
$vsayr=explode(‘|==|’,$fieldandval[$field]);
//选项内容
$valallstr=”;
$vr=explode(‘|’,$vsayr[1]);
$vcount=count($vr);
for($vi=0;$vi<$vcount;$vi++)
{
$vtr=explode(‘,’,$vr[$vi]);
if($getval==$vtr[1])
{
$css=$changefieldandcss;
}
else
{
$css=$fieldandcss;
}
$valallstr.=$valexpr[0].'<a href="/e/action/ListInfo.php?’.$urlcs.’&ph=1<!–url.add–>&’.$field.’=’.urlencode($vtr[1]).$nofield.’" class="’.$css.’">’.$vtr[0].'</a>’.$valexpr[1];
}
//自定义样式 实现二级自定义样式
if($val3[$field]!="")
{
$fieldexpr2=explode(‘|’,$val3[$field]);
$allstr[$i]=$fieldexpr2[0].$vsayr[0].$valallstr.$fieldexpr2[1];
}
else
{
$allstr[$i]=$fieldexpr[0].$vsayr[0].$valallstr.$fieldexpr[1];
}
//清空没有数据的行
if($vcount==1){$allstr[$i]="";}
}
$allstr=str_replace(‘<!–url.add–>’,$urladd,$allstr);
return $allstr;
}
?>
然后把这个代码放到模板里面:
<?php
$GET=$_GET;
//——- 函数参数设置开始 —–
//要显示的结合项字段列表,多个字段用半角逗号“,”隔开 如果是二级关系用 “#”
$fieldandvar=’quyu,ftitle,jiage’;
//正常链接样式
$fieldandcss=’fieldandcss’;
//已选的选项链接样式
$changefieldandcss=’changefieldandcss’;
//字段与字段的显示间隔符,格式:开始显示字符|结束显示字符
$fieldexp='<table><tr><td>|</td></tr></table>’;
//选项与选项的显示间隔符,格式:开始显示字符|结束显示字符
$valexp=’| ‘;
//字段显示选项设置,多项用“|”号隔开,格式:选项说明|==|内容1,值1|内容2,值2
$val=array();
$val2=array();
$val3=array();
$val[‘quyu’]='<b>区域:</b>|==|老城,老区|新区,新区’;
$val[‘ftitle’]='<b>户型:</b>|==|三室一厅,三室一厅|三室两厅,三室两厅|两室一厅,两室一厅’;
$val[‘jiage’]='<b>价格:</b>|==|50,50|40,40|30,30′;
$val3[‘jiage’]='<div class="gzw">|</div>’;
$val3[‘quyu’]='<div class="gzw">|</div>’;
$val3[‘ftitle’]='<div class="gzw">|</div>’;
$g=user_ShowFieldandChange($val,$fieldandvar,$fieldandcss,$changefieldandcss,$fieldexp,$valexp,$val3);
?>
<?=$g[0]?>
<?=$g[1]?>
<?=$g[2]?>
<?=$g[3]?>
<?=$g[4]?>
这是后台对应的字段,一定要对应你的后台
这个的原理其实就是判断你这个字段里面是不是有这个文字,从而达到赛选的目的
这个是对应的样式,可以通过class进行样式控制
这个是必须要加的,原理的话我也不清楚,反正不加是不显示的
这里是控制筛选的,效果如下
阅读全文
方法1、 调用10条当前tag [showtags]’selfinfo’,10,0,”,0,”,’ ’,0,”,’tagname'[/showtags] 方法2、 内容页调用tag,按tagname调用 <div class="tagsline">Tags:<? $a="$navinfor[infotags]"; $str=str_replace(‘,’, ‘,’, $a); $tag=”; $t= explode(",", $str); for($i=0;$i<count($t);$i++) { if($t[$i]) { $tagslink="[!–news.url–]e/tags/?tagname=".urlencode($t[$i])."&tempid=1"; $tag.="<a href=’$tagslink’ target=’_blank’>".$t[$i]."</a> "; } } echo $tag; ?> </div> 或,按tagname调用 <?php $fr=$empire->fetch1("select infotags from {$dbtbpre}ecms_news_data_{$navinfor[stb]} where id=’$navinfor[id]’"); $infotags=$fr[‘infotags’];//这个就是infotags字段内容 $tag=”; $t=explode(‘,’,$infotags);//去逗号 $d=count($t); for($i=0;$i<count($t);$i++) { if($t[$i]) { $tagslink="[!–news.url–]e/tags/?tagname=".urlencode($t[$i])."&tempid=1"; $tag.="<a href=’$tagslink’ target=’_blank’>".$t[$i]."</a> "; } } echo $tag; ?> 或,按id调用 <? $tbname=$class_r[$navinfor[‘classid’]][‘tbname’]; $ftbname=$dbtbpre."ecms_".$tbname."_data_".$navinfor[‘stb’]; $hlt = $empire->fetch1("select infotags from {$ftbname} where id=’$navinfor[id]’"); $a=$hlt[infotags]; $str=str_replace(‘,’, ‘,’, $a); $tag=”; $t= explode(",", $str); for($i=0;$i<count($t);$i++) { if($t[$i]) { $datar=$empire->fetch1("select tagid from {$dbtbpre}enewstags where tagname=’$t[$i]’ limit 1"); $tagslink="[!–news.url–]e/tags/?tagid=".$datar[tagid].""; $tag.="<a href=’$tagslink’ target=’_blank’>".$t[$i]."</a> "; } } echo $tag; ?> 注释: 限制数量,把$i<count($t)修改为$i<count($t)&&$i<限制数量 mid=1数据模型id tempid=1模型的模板id orderby排列方式 classid=34栏目id &line=5调用条数 如:上面的 &tempid=1 ————————————————————————————————————— 方法3、tags标签实现多颜色样式 <?php $ecms_bq_sql=sys_ReturnEcmsLoopBq("select * from [!db.pre!]enewstagsdata where classid=’$navinfor[classid]’ and id=’$navinfor[id]’ order by tagid",10,24,0); $bqno=0; while($bqr=$empire->fetch($ecms_bq_sql)) { $bqsr=sys_ReturnEcmsLoopStext($bqr); $bqno++; ?> <?php $ecms_bq_sql2=sys_ReturnEcmsLoopBq("select * from [!db.pre!]enewstags where tagid=’$bqr[tagid]’ order by tagid",1,24,0); $bqno2=0; while($bqr2=$empire->fetch($ecms_bq_sql2)) { $bqsr2=sys_ReturnEcmsLoopStext($bqr2); $bqno2++; ?> <a class="tag-<?=$bqno?>" href="<?=$public_r[newsurl]?>e/tags/?tagname=<?=$bqr2[‘tagname’]?>&tempid=1"><?=$bqr2[tagname]?></a> <?php } } ?> 接着在css中定义标签的样式,这个可以自己定义。 .tag-1{background:#ff7094;} .tag-2{background:#94b770;} .tag-3{background:#db94ff;} .tag-4{background:#399;} .tag-5{background:#f60;} 注释:mid=1数据模型id tempid=1模型的模板id orderby排列方式 classid=34栏目id 如:上面的 &tempid=1 ————————————————————————————————————— 方法4、 [e:loop={"select a.*,b.* from [!db.pre!]enewstags a LEFT JOIN [!db.pre!]enewstagsdata b ON a.tagid=b.tagid where b.classid=’$navinfor[classid]’ and b.id=’$navinfor[id]’ group by b.tagid order by a.num desc limit 100",0,24,0}] <a href='<?=$public_r[‘newsurl’]?>e/tags/?tagname=<?=$bqr[‘tagname’]?>’ title='<?=$bqr[‘num’]?>个’><?=$bqr[‘tagname’]?>(<?=$bqr[‘num’]?>)</a> [/e:loop] ————————————————————————————————————— 方法5、 <?php $tsql=$empire->query("select * from {$dbtbpre}enewstagsdata where id=’$navinfor[id]’order by id asc limit 7"); while($tr=$empire->fetch($tsql)){ $tag=$empire->fetch1("select * from {$dbtbpre}enewstags where tagid=’$tr[tagid]’ limit 1"); ?> <span><a class="tag" href="<?=$public_r[newsurl]?>e/tags/?tagname=<?=$tag[‘tagname’]?>"><?=$tag[tagname]?></a></span> <?}?> 方法6.(网友提供,感谢) <?php $tbname="news"; //“news”为新闻数据表名称 $ftbname=$dbtbpre."ecms_".$tbname."_data_".$navinfor[‘stb’]; $hlt = $empire->fetch1("select infotags from {$ftbname} where id=’$navinfor[id]’"); $keyr=explode(‘,’,$hlt[infotags]); for($i=0;$i<count($keyr);$i++) { echo ‘<a href="’.$public_r[newsurl].’e/tags/?tagname=’.$keyr[$i].’" target=_blank>’.$keyr[$i].'</a> ’; } ?> 或 <?php $fr=$empire->fetch1("select infotags from {$dbtbpre}ecms_news_data_{$navinfor[stb]} where id=’$navinfor[id]’"); $keyr=explode(‘,’,$fr[infotags]); for($i=0;$i<count($keyr);$i++) { echo ‘<a href="’.$public_r[newsurl].’e/tags/?tagname=’.$keyr[$i].’" target=_blank>’.$keyr[$i].'</a> ’; } ?> 或 <?php $fr=$empire->fetch1("select infotags from {$dbtbpre}ecms_news_data_{$navinfor[stb]} where id=’$navinfor[id]’"); $infotags=$fr[‘infotags’]; $r_tag=explode(",",$infotags); for($i=0;$i<count($r_tag);$i++){ if($r_tag[$i]){ $tagslink=$public_r[newsurl]."e/tags/?tagname=".urlencode($r_tag[$i]); $tags.="<a class=’tag-link19′ href=’$tagslink’ target=’_blank’ rel=’tag’>".$r_tag[$i]."</a>"; } } ?> tag:<?=$tags?> 注释:限制数量,把$i<count($keyr)修改为$i<count($keyr)&&$i<限制数量
原文链接https://www.moyublog.com/notes/733.html
阅读全文
https://www.jb51.net/cms/76184.html 原文链接
如果你经常上58同城、赶集网、百姓网等分类信息网站时,在茫茫信息中你怎么可以准确的找到自己所需要的信息,这时我们就用到网站提供的筛选功能,从而快速便捷的找到所需要的信息范围。在我们建站中,这个筛选功能经常用到,下面我们以58同城网的租房栏目列表筛选为例,详细讲解帝国cms结合项列表属性筛选功能。
先看图:
一、建立字段
可以看到租房栏目列表筛选用到了4个字段:“区域”、“租金”、“厅室”、“方式”。
(1)字段“区域”的值为:“全鞍山”、“铁东”、“铁西”、“立山”、“千山”、“其他”,字段设置如下图:
(2)字段“租金”的值为:“不限”、“500元以下”、“500-1000元”、“1000-1500元”、“1500-2000元”、“2000-3000元”、“3000-4500元”、“4500元以上”,字段设置如下图:
(3)字段“厅室”的值为:“不限”、“一室”、“两室”、“三室”、“四室”、“四室以上”,字段设置如下图:
(4)字段“方式”的值为:“整套出租”、“单间出租”、“床位”,字段设置如下图:
二、安装修改插件
下载帝国cms官方结合项列表属性筛选插件,然后打开“fieldand.txt”文件,将文件里的所有内容复制到 /e/class/userfun.php 文件里(放在之间任意位置);(推荐用Dreamweaver或Editplus等编辑工具修改)
先在要显示的结合项字段列表,把“$fieldandvar=‘myarea,sex,age’;”改成“$fieldandvar=‘quyu,zujin,tingshi,fangshi’;”,这是我们需要的显示的4个字段列表。
接着我们用4种颜色来表示各字段代码的区域,从而直观的分析他们共同代码点,如下图(2-1):
由上图得到 字段与字段的显示间隔符 “$fieldexp=’
|
”。
然后根据格式:“选项说明|==|内容1,值1##内容2,值2”进行分析:
最后得到修改后的图:
根据代码“全鞍山”得到 已选的选项链接样式 “$changefieldandcss=’select’;”。
根据上图(2-1)结合 选项与选项的显示间隔符格式:开始显示字符|结束显示字符 得到 “$valexp=”;”。
修改好的插件代码如图:
三、测试效果
我们看下效果:
点击“区域”的“铁东”效果如下:
接着点击“租金”的“500元以下”效果如下:
ok,测试没有问题,这一讲就到此。
注意事项:
(1)代码无误,但是筛选后并没有起作用的原因是系统模型相应字段的结合项没有打上勾。
(2)筛选时提示“你来自的连接不存在”是因为地址栏没有指定“&classid=栏目ID” 。
附上:官方插件 ecms jiehexiang
阅读全文
QQ默认会杀QQ的GPS后台,导致我开运动的时候,不记录轨迹,打开一次QQ就定位一次,然后轨迹会变成直线,今天搜索了一下教程,终于学会设置了。
其中一个是在安全中心,应用管理里面的自启动管理,把QQ设置为可以自启动。
还有一个在设置里面电量和性能那里,应用设置,省电策略,找到QQ设置为无限制
然后就OK了
阅读全文
第 19 页,共 102 页« 最新«...10...1718192021...304050...»最旧 »