搜 索

在织梦的自定义表单中获得ip与限制每个ip的提交次数

编辑:QTOOL.NET日期:2019-08-14402

在使用织梦制作的网站中,有时候会因为不停的提交表单而造成大量的垃圾数据,那么怎样才能限制每个用户10分钟内只能提交一次表单呢?
 
首先我们需要在自定义表单中新增一个字段postip
然后更新一下表单中dede_fields与dede_fieldshash的值.
字段postip与新增代码中的字段相同
然后修改plus文件夹中的diy.php文件
大约在69行处找到:
${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});  
}
 
在代码的下方加入如下代码:
 
if($fieldinfo[0] == 'postip')
{
${$fieldinfo[0]}=GetIP();//获取ip
}
以上为新增提交ip字段内容,要想达到限制提交自定义表单的时间内的次数我们还需要
找到
            showmsg('自定义表单不存在', '-1');
            exit();
        }
在下方添加:
    if(isset($_COOKIE['postxz'])){
if($_COOKIE['postxz'] == $_SERVER['REMOTE_ADDR']){
ShowMsg('请勿重复提交,再次提交需等待10分钟','-1');
exit();
} else {
 
setcookie('postxz',$_SERVER['REMOTE_ADDR'],time() + 600,'/');//10分钟
}
    } else {
setcookie('postxz',$_SERVER['REMOTE_ADDR'],time() + 600,'/');//10分钟 单位为秒可自行修改
    }
 
最后保存修改好的diy文件
在表单中的调用中新增隐藏文本框:
<input type="hidden" name="postip" id="postip" value="">
这样我们在提交表单时会自动提交用户ip,以及限制用户每隔10分钟只能提交一次表单数据.

TAG标签:dedecms
此文章由QTOOL.NET编辑
最新文章

热门标签