首页
关于本站
网站模板
代码教程
Emlog教程
米拓教程
SEO优化教程
Ecshop教程
zblog教程
Excel技巧
电脑软件教程
互联网
免费资源
网络新闻
留言咨询
在线问答
申请友链
网址导航
联系舍力
搜索
舍力
登录
搜索
舍力
静以修身。
累计撰写
1140
篇文章
累计收到
3662
条评论
首页
栏目
首页
关于本站
网站模板
代码教程
Emlog教程
米拓教程
SEO优化教程
Ecshop教程
zblog教程
Excel技巧
电脑软件教程
互联网
免费资源
网络新闻
留言咨询
在线问答
申请友链
网址导航
联系舍力
Emlog教程
2015-1-29
分享PHP防刷新代码从此网站不再被F5刷死
不晓得大家有没有遇到过网站被暴力F5刷新刷死的?如果你曾经的确遇到过这样的问题,那么接下来的文章可能对你而言就是一片非常实用的好文了,骚包也是刚刚在流量互联网的时候无意中发现的这篇文章,现在把网站防F5刷新的代码分享给大家。 防刷新代码一: <?php session_start(); $allow_sep = "60"; if (isset($_SESSION)){ if (time() - $_SESSION < $allow_sep) {exit("孩子你能消停一下么?刷新请60秒后继续!");} else{$_SESSION = time();} }else{$_SESSION = time();} ?> 防刷新代码二: <?php //代理IP直接退出 empty($_SERVER) or exit('Access Denied'); //防止快速刷新,在设置的时间内到达设置次数就跳转的设定的页面 session_start(); $seconds = '3'; //时间段 $refresh = '3'; //刷新次数 //设置监控变量 $cur_time = time(); if(isset($_SESSION)){ $_SESSION += 1; }else{ $_SESSION = 1; $_SESSION = $cur_time; } //处理监控结果 if($cur_time - $_SESSION < $seconds){ if($_SESSION >= $refresh){ //跳转至攻击者服务器地址 header(sprintf('Location:%s', 'http://127.0.0.1')); exit('Access Denied'); } }else{ $_SESSION = 0; $_SESSION = $cur_time; } ?> 因为上面的代码是基于 session的验证,假如你在2秒内刷新了页面,那么它会执行exit() 函数输出一条消息,并退出当前脚本。于是就不会加载下面的内容,所以这段代码最好放在header中,先让代码执行,再加载其他的东西。 如果把代码放在了footer里,结果整个页面都加载了只在最后一行输出了“请不要频繁刷新”,放在header中,效果比较好。其实最好的方法是新建一个FCC.php文件,然后在header调用。 js屏蔽F5的方法 <script> document.onkeydown = function(e){ e = window.event || e; var keycode = e.keyCode || e.which; if( keycode = 116){ if(window.event){// ie try{e.keyCode = 0;}catch(e){} e.returnValue = false; }else{e.preventDefault();} }} </script>
2015年1月29日
9864 阅读
1 评论
Emlog教程
2015-1-28
给EMLOG加上一个订单/工单提交功能
说到这个客户提交订单的功能,一般人可能觉得是写插件来实现。不过写插件有点麻烦,有不少增删改查的功能要写。最近有个朋友找明月网络定制模板,需要一个客户提交订单的功能。明月网络想了一下下,想到了一个通过修改EMLOG本身的评论系统的方法来简单实现一个客户提交订单的功能。 实现思路是,首先制作一个用户提交订单信息的表单,然后在用户提交该表单的时候,将订单信息表单的数据通过JS整合成评论数据提交。之后,网站管理员就可以在后台的“评论”中看到客户提交的“订单”信息。功能代码(来源明月网络): <script type="text/javascript"> function setDingDan(){ var ddInfo = ''; var ddName = $("#dingdanform input").val(); var ddCall = $("#dingdanform input").val(); var ddAdd = $("#dingdanform input").val(); var ddStart = $("#dingdanform input").val(); var ddEnd = $("#dingdanform input").val(); var ddNum = $("#dingdanform input").val(); var ddMore = $("#dingdanform input").val(); if(ddName=='' || ddCall==''){ alert('请将必要信息填写完整,谢谢合作!'); return false;} ddInfo = '客户姓名:'+ddName+';联系电话:'+ddCall+';客户地址:'+ddAdd+';租车日期:'+ddStart+';还车日期:'+ddEnd+';租车数量:'+ddNum+';备注:'+ddMore; $("#dingdanform input").val(ddName); $("#dingdanform input").val('http://www.shuyong.net'); $("#dingdanform input").val(ddInfo); } </script> <form method="post" id="dingdanform" action="<?php echo BLOG_URL; ?>index.php?action=addcom" onsubmit="return setDingDan();"> <input type="hidden" name="gid" value="<?php echo $logid; ?>" /> <div class="inner"> <table cellspacing="0"> <tr><td align="center" width="100">客户姓名</td><td><input type="text" name="dd_name" maxlength="49" value="<?php echo $ckname; ?>" size="22" /></td><td>*</td></tr> <tr><td align="center" width="100">联系电话</td><td><input type="text" name="dd_call" maxlength="49" size="22" /></td><td>*</td></tr> <tr><td align="center" width="100">邮箱地址</td><td><input type="text" name="commail" maxlength="128" value="<?php echo $ckmail; ?>" size="22" /></td><td></td></tr> <tr><td align="center" width="100">客户地址</td><td colspan="2"><input type="text" name="dd_add" size="50" /></td></tr> <tr><td align="center" width="100">租车日期</td><td><input type="text" name="dd_start" maxlength="49" size="22" /></td><td></td></tr> <tr><td align="center" width="100">还车日期</td><td><input type="text" name="dd_end" maxlength="49" size="22" /></td><td></td></tr> <tr><td align="center" width="100">租车数量</td><td><input type="text" name="dd_num" maxlength="49" size="10" /> 台</td><td></td></tr> <tr><td align="center" width="100">备 注</td><td colspan="2"><input type="text" name="dd_more" size="50" /></td></tr> <tr><td align="center" width="100"></td><td><?php echo $verifyCode; ?> <input type="submit" value="提交" class="sbtn"/></td><td></td></tr> </table> </div> <p> <input type="hidden" name="comname" /> <input type="hidden" name="comurl" /> <input type="hidden" name="comment" /> <input type="hidden" name="pid" value="0" /> </p> </form>
2015年1月28日
8246 阅读
1 评论
Emlog教程
2015-1-28
emlog固定滚动侧边栏实现方法
滚动侧边栏的方式,好处显而易见,当博文较长的时候就不会因为侧边栏太短而产生不美观了。其实有集中方法:另一种方法请参考侧边栏滚动教程;滚动侧边栏的教程,其实很简单,先来看看代码。需要加载jquery。emlog可以直接使用/include/lib/js/jquery/jquery-1.7.1.js。js代码如下: <script> $(function () { if ($(".fixed_side").length > 0) { var offset = $(".fixed_side").offset(); $(window).scroll(function () { var scrollTop = $(window).scrollTop(); //如果距离顶部的距离小于浏览器滚动的距离,则添加fixed属性。 if (offset.top < scrollTop) $(".fixed_side").addClass("fixed"); //否则清除fixed的css属性 else $(".fixed_side").removeClass("fixed"); });}}); </script> html代码: <div class="fixed_side"><img src="http://www.shuyong.net/aliyun.jpg"></div> css代码(尺寸根据自己的情况来更改): .fixed_side{clear:both;overflow:hidden;text-align:center;margin:5px} .fixed_side img{max-width:100%;} .fixed{position:fixed;top:0px;width:237px;margin:5px} 演示请看本站首页侧边栏广告
2015年1月28日
9106 阅读
7 评论
Emlog教程
2015-1-28
emlog博客自建页面转换为普通文章页面
emlog博客自建的页面如何转换为普通日志文章页面?很简单,直接到SQL数据库里面修改就可以了! 找到表:emlog_blog点击后面的【浏览】 找到你想要修改成普通文章的页面,页面的type为page,文章的type为blog。 找到后,点击前面的【编辑】 找到sortid项,将后面的-1改为你想要分到的分类下面,分类ID为正数:1、2、3、4…… 将tape类型修改为:blog 点击执行后大功告成,看看原来的emlog页面是不是变成了普通的文章页了!
2015年1月28日
10637 阅读
3 评论
Emlog教程
2015-1-27
分享Emlog博客程序建站SEO优化技巧方法
之所以叫做简易优化指南,是因为emlog网站程序本身并不支持多么复杂的优化手段,比如说尽管5.0.0版实现了首页的网页标题和浏览器标题(也即title)分开设置,但栏目页和作者页还是老样子网页标题和浏览器标题只能一起弄。此外还有缺少二级分类支持啦、无法单独提取置顶和带图文章啦——修改数据库之类的主意就免了吧,可以的话咱尽量只动模板,实在不行稍微改动一下程序文件就够了。 假定大家都已经具备了最基本的修改模板技能,也就是说能够使用正确的网页编程软件(Dreamweaver、Notepad++、Editplus、EmEditor、UltraEdit皆可,实在不行emlog主题编辑插件也凑合,严厉禁止windows记事本工具)对网页文件进行简单修改,并且模板文件也已基本到位,这就拿起工具按照下面说的改吧。 一、网站title的优化 网站title在任何搜索引擎规则中都是大头,按说首页、列表页、文章页的title都是站长手工设置的,对于像祈雨其雨这样首页title简短的网站来说根本不需要过多纠结。但在现实中,很多站长偏爱给网站首页title设置一长串关键词组合,而emlog程序默认首页title为列表页和文章页title的后缀,导致页面title大量重复、关键词冲突。 针对这种情况,一般采取的方法是修改模板title,将header.php文件默认的<title><?php echo $site_title;?></title>替换成<title><?php echo isset($log_title)?$log_title:$site_title;?></title>。这样做可以解决文章页,但解决不了列表页。更为彻底的处理方法是去/include/controller目录修改一干XXX_controller.php文件中的相关字段。再处理/t/index.php文件。 Emlog程序默认的分页title都一模一样,造成很多同名页面,关键词冲突。不改内核、只通过模板解决的办法是写一个<?php echo page_tit($page); ?>函数放到header.php文件的title标签里,此函数需在module.php文件中定义:具体操作方法见 >>如何解决emlog列表分页标题相同的问题 二、禁止抓取某些页面 为了减轻蜘蛛抓取压力提高搜索引擎优化效率,原则上建议把不需要蜘蛛收录的页面统统设置成禁止抓取的形式。比如说归档列表这玩意,每天更新会变得无穷无尽,虽然博客用户很喜欢,但是“某年某月某日”这个关键词能带来多少有效流量呢?归档列表内的日志标题会不会与其他页面发生关键词优化冲突呢? 归档列表的主要入口,也就是日历组件的源代码位于/include/lib/calendar.php文件内,理论中rel="nofollow"标签能够阻止蜘蛛从这个入口爬进去,现在也有一种说法是它只能阻止权重传递但无法阻止蜘蛛爬行。在robots.txt文件中配置disallow标签可以阻止搜索引擎收录,但无法阻止抓取,也就意味着减轻蜘蛛抓取压力的作用十分有限。还有一桩大麻烦,robots.txt容易泄露网站后台地址,原本出于安全目的禁止搜索引擎收录的设置反而会出卖自己。 试试在模板头部加入<meta name="robots" content="none">标签,这是一个禁止搜索引擎检索本页或跟踪该页任何链接的命令。目前emlog后台管理模板采用的是<meta name="robots" content="noindex, nofollow">标签,noindex表示拒绝索引本页但可跟踪该页链接nofollow是禁止跟踪链接,加起来正好是none的效果。给各位提个醒,目前后台登录模板login.php文件还没配置这个标签。 三、面包屑导航 为文章页设置面包屑导航非常简单,把<a title="返回首页" href="<?php echo BLOG_URL; ?>"><?php echo $blogname; ?></a> >> <?php blog_sort($logid); ?> >> <?php echo $log_title; ?>贴进echo_log.php文件一切搞定。列表页的面包屑导航比较麻烦,log_list.php文件不仅得负责分类列表,通常情况下还得担负首页、标签、归档、搜索的种种列表职能,每种列表页面对应的获取当前页面方式都不一样。 这里介绍一种比较通用的log_list.php设置面包屑导航方式:详情见 >>Emlog5的各种标签集合,只分享一些常用的标签函数 四、完善分类置顶 Emlog程序默认首页文章置顶,而列表页还是按照日期排序。有些人是需要分类置顶功能的,模板制作的时候的确可以用top='y'语句把置顶日志单独提取出来,但是需要在module.php文件里面定义一大堆,所以还是改程序文件算了。 让我们回到/include/controller目录,打开sort_controller.php文件,搜索到$sqlSegment = "and sortid=$sortid order by date desc";将其修改为$sqlSegment = "and sortid=$sortid order by top DESC ,date desc";即可获得分类置顶效果。有些CMS模板需要在module.php文件中定义分类列表组件,适当“top DESC ,”就能让置顶文章跑到最前面。 五、规范访问路径 原则上一个网页只能有一个访问路径,复数个访问路径会被搜索引擎视为重复页面,轻则分权重则K站。最典型的莫过于顶级域名和www域名的301重定向问题。这里强调一下,301重定向是一定要做好的,不仅如此,emlog后台设置中的网站地址也一定要写好,如能在模板header.php文件所对应的网页头部加入<base href="<?php echo BLOG_URL; ?>" />标签就更好了。 还有一个小问题,用惯emlog的朋友们可能早已发现了,就是文章页面访问路径可变。举例来说,本文的正确访问路径应该是/post-189.html,但是换成/post/189.html甚至于/seo/189.html这些根本不应该存在的路径同样可以访问,同一文章页出现了多个访问路径。解决的办法是给文章页面设置canonical标签,对搜索引擎强调网页规范访问路径。 请将以下代码写入模板module.php文件中加入 <?php //文章访问路径标准化 function gf_url($id){ if ($id){echo '<link rel="canonical" href="'.Url::log($id)."\" />";} }?> ,再将<?php echo gf_url($logid);?>添加到网页头部
2015年1月27日
10937 阅读
4 评论
Emlog教程
2015-1-27
Emlog博客程序模板调用首页index.php文件的方法
Emlog#默认的模板文件是没有index.php的,而是用log_list.php这个博客列表页作为首页模板。增加index.php模板作为首页的方法很简单,只需要在log_list.php顶部增加一段代码即可。如下: <?php if($pageurl == Url::logPage()){include View::getView('index');exit;}?> 然后在模板文件中建立一个index.php文件即可,当然你也可以把index.php改成其他的名称,只需要把上面代码中的index改成你自己修改的就可以了,内容就自己慢慢捣鼓了,想实现一些功能可以参考>>Emlog教程
2015年1月27日
8251 阅读
3 评论
Emlog教程
2015-1-27
让Emlog导航栏的地址更简洁一点
自从Emlog升级到5.0版以后,后台的管理与设置就变得更简单和高效了,特别是新增加的“导航”功能,更是让导航栏的定制变得极其简单。不过稍微细心一点的EMER肯定会注意到,所有导航中添加的的自建页面、分类以及自定义导航(即原来的链接地址),都是一个带有“http://”的完整的地址,与系统本身的碎语和管理页面的地址相比,要长了许多,显得不够简洁。 那么,能不能让这些自己增加的除自定义导航(一般都是站外链接)之外的导航栏目也像碎语或管理页面那样,直接使用短地址,从而将博客安装路径那一大串字符省略呢?如下图所示: P.S. 若自定义导航是站内链接,也可作相同处理 初看似乎是可以的,在首页访问各个页面也没有错误。但是,当我们不是在默认的首页,而是在其它页面访问导航栏上的各个栏目时,问题就来了,此时访问的实际地址为当前页面的地址后面加上后台所设置的跳转地址。比如我如果访问了本站的“原创”标签,马上再点“留言”,结果访问地址变成了“http://www.shuyong.net/tag/gbook.html”,将进入错误页面。 难道此路行不通?先不要着急,其实我们只要对模板再作一点小小的修改,完全可以访问这种短地址。下面是关键:打开自己正在使用的模板中的 module.php 文件,找到 $value = $value == 'y' ? BLOG_URL . $value : trim($value, '/'); 一句,将其替换为如下语句: if (!strstr(strtolower($value),'http://')){ $value = BLOG_URL . $value; } 这样就可以了。现在,不论从什么页面访问导航栏,都不会再出错了。而且,这样做还有一个额外的好处,如果我们使用了多域名的代码(可参考本博《Emlog程序实现多域名全站访问的方法》一文),在用其它域名访问同一个网站的时候,访问导航栏上的栏目也不会再跳回到原来的域名了。 不过,要特别指出的是,如果你后台的导航使用了这种短地址,在更换模板之后,一定要记得对新使用的模板也要作同样的修改。
2015年1月27日
11665 阅读
0 评论
Emlog教程
2015-1-26
不修改emlog内核实现博客分页自定义的方法分享
以前有分享过 emlog修改分页样式(分页函数)方法总结的方法,今日给大家分享是不修改emlog内核实现博客分页自定义的方法,其实在代码上和以前相差不了多少;下面是详情教程:首页找到模板的module.php并在其最后加入如下代码: <?php //分页函数 function sheli_fy($count,$perlogs,$page,$url,$anchor=''){ $pnums = @ceil($count / $perlogs); $page = @min($pnums,$page); $prepg=$page-1; //shuyong.net上一页 $nextpg=($page==$pnums ? 0 : $page+1); //shuyong.net下一页 $urlHome = preg_replace("|*page|","",$url); //开始分页导航内容 $re = ""; if($pnums<=1) return false; //如果只有一页则跳出 if($page!=1) $re .=" <a href=\"$urlHome$anchor\">首页</a> "; if($prepg) $re .=" <a href=\"$url$prepg$anchor\">前页</a> "; for ($i = $page-2;$i <= $page+2 && $i <= $pnums; $i++){ if ($i > 0){if ($i == $page){$re .= " <span>$i</span> "; }elseif($i == 1){$re .= " <a href=\"$urlHome$anchor\">$i</a> "; }else{$re .= " <a href=\"$url$i$anchor\">$i</a> ";} }} if($nextpg) $re .=" <a href=\"$url$nextpg$anchor\">后页</a> "; if($page!=$pnums) $re.=" <a href=\"$url$pnums$anchor\" title=\"尾页\">尾页</a>"; //下拉跳转列表,循环列出所有页码 $re .=" 跳转到第 <select name='topage' size='1' onchange='window.location=\"$url\"+this.value'>\n"; for($i=1;$i<=$pnums;$i++){if($i==$page) $re .="<option value='$i' selected>$i</option>\n"; else $re .="<option value='$i'>$i</option>\n";} $re .="</select> 页,共 $pnums 页"; return $re;} ?> 列表页调用方法(即log_list.php页): <?php echo sheli_fy($lognum,$index_lognum,$page,$pageurl);?> 微语页调用方法: <?php echo sheli_fy($twnum,Option::get('index_twnum'),$page,BLOG_URL.'t/?page=');?>
2015年1月26日
12395 阅读
0 评论
Emlog教程
2015-1-23
分享Emlog文章日期显示时间及星期的方法
在进行模板文件代码修改的时候,最好使用编程软件,建议不要使用记事本进行编程,不然有可能出现乱码的哦~~不说废话了,以下的详细操作步骤:以默认模版为例在log_list.php找到 <?php echo gmdate('Y-n-j', $value); ?> 替换为 <?php $weekarray=array("日","一","二","三","四","五","六");echo gmdate('Y年n月j日 G:i', $value);echo" 星期".$weekarray)];?> 如果是内容页请使用下面代码,以默认模版为例在echo_log.php找到 <?php echo gmdate('Y-n-j', $date); ?> 替换为 <?php $weekarray=array("日","一","二","三","四","五","六");echo gmdate('Y年n月j日 G:i', $date);echo " 星期".$weekarray;?> 本方法5.3.1测试正常,其他为做测试,如有疑问请在本页留言反馈!
2015年1月23日
11145 阅读
1 评论
Emlog教程
2015-1-22
实现EMLOG用户登录才可以查看文章的方法分享
实现EMLOG实现用户登录才可以查看文章,当用户为游客时无法查看文章;只有注册登录后才有权限查看文章,其实这个功能实现起来是相当简单的;三行代码即可搞定,在echo_log.php中找到<?php echo $log_content; ?>替换为 <?php if(ROLE == ROLE_VISITOR): ?> 本文只有登录后的用户才能查看,请登录后查看 <?php else: ?><?php echo $log_content; ?> <?php endif; ?> 本文5.3.1中测试正常,其它版本未做测试,如有疑问请本页留言反馈!
2015年1月22日
9614 阅读
5 评论
Emlog教程
2015-1-21
EMLOG教程 - 侧边栏文章标题字数修改方法
本站在修改侧边栏的时候,进行了侧变栏内容固定浮动跟随浏览器,但是问题来了,固定浮动侧边栏之后随机文章的比较长的标题会凸出去外边、或者两行显示,感觉很难看的样子,所以寻找办法修改标题字数使之截断过长的标题! EMLOG博客侧边栏最新日志标题字数修改方法,博客网站程序使用EMLOG,有一些地方想按自己的要求修改修改,好让博客更加美观整洁,其中有一处就是想把侧边上的最新日志、热门日记和随机日志控制字数。侧边栏日记标题太长我想改短一点,网站后台没有设置,也没有插件可以使用,其实这个可以修改程序模板文件解决的。需要修改什么代码才能截断标题字数?有两个方法。 一、找到侧边栏文件:模板文件module.php(以默认主题为例): <li><a href="<?php echo Url::log($value); ?>"><?php echo $value; ?></a></li> 修改替换为: <li><a href="<?php echo Url::log($value); ?>" title="<?php echo $value; ?>"><?php echo subString(strip_tags($value),0,10); ?></a></li> 上面的数字10是字符数,按自己需要的宽度自行修改,记住是修改10那个数字为最适合自己网站的长度。侧边栏的其他栏目字数修改方法同上,这里就不多说了,希望能够帮到大家。 二、用css控制,直接在css中设置一个高度,然后防止溢出就ok了,自己慢慢倒腾吧,就不细讲了。
2015年1月21日
8247 阅读
1 评论
Emlog教程
2015-1-19
分享emlog调用各分类栏目标题、描述、别名及发布的文章数
自定义调用分类标题和描述代码,特地分享出来以方便大家开发出功能更多、更加人性化的主题来,废话不多说了,以下的是操作方法:首先我们在modul.php文件中加入一个自定义函数,代码如下: <?php //自定义输出分类标题及分类描述 function index_sort($sid){ global $CACHE; $sortid = explode(",",$sid);//分割数组 $sort_cache = $CACHE->readCache('sort'); $title = $sort_cache;//分类标题的代码 $lognum = $sort_cache;//发布的文章数 $description = $sort_cache;//分类描述的代码 $cname = $sort_cache;//分类别名的代码 ?> <li><h3><a href="<?php echo Url::sort($sid); ?>"><?php echo $title; ?></a>(<?php echo $lognum;?>)<span><?php echo strtoupper("$cname"); ?></span></h3> <p><?php echo $description; ?></p></li> <?php }?> 其次,在需要调用的地方直接键入如下代码就可以轻松调用了 <?php echo index_sort(1); ?> 说明:上面代码中的1是代表的分类栏目的id号,至于这个怎么看就不需要我再说了吧!其实就是分享给一串代码而已! 当然,以上代码只能在5.3以上版本中使用,以前的版本未做测试,个人感觉应该不行!不过朋友们可以看下!
2015年1月19日
12477 阅读
4 评论
Emlog教程
8
9
10
11
12