限制IP24小时提交一次 解决织梦dedecms自定义表单被恶意提交问题

  织梦dedecms有自定义表单提交功能,这个很方便我们开发一些例如报名,提交订单以及挂号的功能,但是用户可以无限制重复提交,这样就给网站带来非常高的维护成本,下面就白龙告诉大家如何设置每个用户24小时内只能提交一次的自定义表单:
 
  首先打开/plus/diy.php文件,在里面找到如下代码:
 
if(!is_array($diyform))
        {
            showmsg('自定义表单不存在', '-1');
            exit();
        }
 
    在其下面添加如下代码:
 
//检测游客是否已经提交过表单 by www.bailong.org.cn
        if(isset($_COOKIE['VOTE_MEMBER_IP']))
        {
            if($_COOKIE['VOTE_MEMBER_IP'] == $_SERVER['REMOTE_ADDR'])
            {
                ShowMsg('您已经填写过表单啦','-1');
                exit();
            } else {
                setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/');
            }
        } else {
            setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/');
        }
 
  添加完成后,保存覆盖原来的模板就可以了,需要说明的是,这个方法是通过验证cookie的方式防止用户重复提交,如果用户清除cookie的话还是可以提交的。