Typecho 文档:给搜索添加时间间隔限制
适用程序:Typecho
程序版本:1.2.1
文档作者:Lopwon
作者博客:Lopwon.com
发布页面:Lopwon.com/attachment/3800/
许可方式:CC BY-NC-SA
注意:此文档源于作者在博客改造中的一些经验总结,转载还请署名。
敬告:此文档操作涉及程序核心文件的修改,作者不对你在使用中产生的任何问题造成的不良后果,承担责任。
文档说明
一定程度上,规避非正常人类的非正常行为。
使用方法
A 涉及文件
var/Widget/Archive.php
B 改造文件
作用:限定搜索频率。
1. 打开文件 var/Widget/Archive.php 搜索找到以下代码:
self::pluginHandle()->trigger($hasPushed)->search($keywords, $this);
2. 在以上代码的下一行添加以下代码:
$currentTime = time(); // 获取当前时间
$searchInterval = 60; // 自定义搜索间隔时间,单位:秒
$lastSearchTime = Cookie::get('last_search_time'); // 获取最后一次搜索时间
if ($lastSearchTime && ($currentTime - $lastSearchTime < $searchInterval)) { // 间隔时间内再次搜索,抛出提示
throw new WidgetException('搜索过于频繁');
}
Cookie::set('last_search_time', $currentTime); // 更新上一次搜索时间
至此,在自定义搜索间隔时间内,再次触发搜索则抛出提示。