在使用织梦制作的网站中,有时候会因为不停的提交表单而造成大量的垃圾数据,那么怎样才能限制每个用户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分钟只能提交一次表单数据.