DeDeBIZ自定义表单被提交垃圾留言的解决办法

snh102 By snh102 at 2025-01-16 • 暂不可见      举报

《DeDeBIZ织梦自定义表单添加访客提交时间和访客IP+限制每天每个IP提交表单次数》《DeDeBIZ自定义表单添加验证码的办法》都不管用?这是前置条件,在这种情况下,限制IP不管用?提交泛滥、它们是随机的IP?那下面,还有办法,我将教大家。

前置条件:把《限制每天每个IP提交表单次数》先做了。
解决方案:根据IP所在地,来限制IP提交。
负面影响:这样限制的话,很有可能会被误杀。

教程开始

1、给表单添加提交IP所在地。

1.1、后台 - 模型管理 - 自定义表单管理 - 修改 - 添加新字段

字段名称:IP归属地
字段标识:ipadizhi
数据类型:单行文本(varchar)

1.2、后台 - 模型管理 - 自定义表单管理 - 修改 - 添加新字段

字段名称:IP运营商
字段标识:ipaguish
数据类型:单行文本(varchar)

注意:添加的这两个,主要是查询IP的所在地和运营商。

2、打开 /apps/diy.php 搜索

if ($action == 'post') {

在它下面加入

require_once('ipkuclass.php');

附件下载

本地下载

将 IP 文件夹内的 ipkuclass.php 和 ipkuclass2.dat 剪切到 apps 目录内。

继续搜索

$fieldarr = explode(';', $dede_fields);

在它下面加入

$ipku = new IPQuery();
$addr = $ipku->query($ip);
$ipadizhi = $addr['pos'];
$ipaguish = $addr['isp'];

第三方IP库容易失效,在孟坤博客整的纯真本地IP库查询。

该部分是隐藏区

登录后查看

该部分是隐藏区

添加完成后,你的代码,应该如下所示

$time = GetDateTimeMk(time());
$ip = GetIP();
$ipku = new IPQuery();
$addr = $ipku->query($ip);
$ipadizhi = $addr['pos'];
$ipaguish = $addr['isp'];

6行代码哈,不会搞错的吧。

3、根据IP所在地查询,限制每日只能提交三次。

打开 /apps/diy.php 搜索

if ($dsql->ExecuteNoneQuery($query)) {

在它上面加入

$ccc = $dsql->getOne("SELECT count(*) AS mus FROM `{$diy->table}` WHERE ipadizhi='{$ipadizhi}' AND date_format(time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d')");
if($ccc['mus'] >= 3)
{
	showmsg('明天再来!', '-1');
	exit();
}

特别注意:这个是根据所在地查询,与同IP地址提交不一样。比如:都是北京市的,均是北京市的,所有北京市的人,每天只有3条提交次数。

温馨提示

内容由用户共同创建和维护,并不代表织梦爱好者论坛立场!
建议您独自对内容进行评估,核实并咨询相关的专业人士!

DeDeBIZ自定义表单被提交垃圾留言的解决办法DeDeBIZ自定义表单被提交垃圾留言的解决办法DeDeBIZ自定义表单被提交垃圾留言的解决办法DeDeBIZ自定义表单被提交垃圾留言的解决办法DeDeBIZ自定义表单被提交垃圾留言的解决办法+33  33 个回复 | 最后更新于 2025-01-16
该部分是隐藏区

登录后查看回复

该部分是隐藏区

登录后方可回帖

Loading...