在使用免备案虚拟主机搭建的Dedecms程序时,自定义表单常常会受到垃圾信息的困扰。这种问题不仅影响用户体验,还会给管理者带来额外的工作负担。为了有效限制垃圾信息的发布,本文将介绍一种简单的方法来防止初级用户重复提交表单。虽然这种方法并非绝对安全(例如清除Cookie后仍可提交),但它可以在一定程度上减少垃圾信息的数量。
以下是具体的操作步骤:
1、登录到您的控制面板,并找到“文件管理”选项。
2、进入站点根目录,定位到Dedecms程序的核心文件路径:plus/diy.php。
3、打开并编辑该文件,在代码中查找以下内容:

if(!is_array($diyform)) { 
    showmsg('自定义表单不存在', '-1'); 
    exit(); 
}
    

4、在找到的代码下方添加以下内容:

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来记录用户的IP地址。如果检测到用户已经提交过表单,则会提示“您已经填写过表单啦”,并阻止再次提交。
需要注意的是,此方法依赖于浏览器的Cookie机制。因此,如果用户清除Cookie或更换设备,仍然可以重新提交表单。对于更高级的安全需求,建议结合其他验证方式,例如验证码或IP限制。
总结来说,通过修改Dedecms的plus/diy.php文件并添加适当的代码,可以有效减少自定义表单中的垃圾信息。这种方法操作简单,适合大多数普通用户使用。同时,为了进一步提升网站的安全性,管理员还可以考虑启用更多的防护措施,确保网站的稳定运行。