企业做网站开发时,基本都会用到前台交互表单。像常见的在线订单、客户报名、信息咨询、资料提交等功能,都是依靠自定义表单来收集用户信息。通过表单收集数据,企业可以在后台统一整理、统计、跟进客户资源,是邯郸本地建站、营销型网站制作里非常实用的功能。
织梦DedeCMS程序自带自定义表单功能,不用额外花钱二次开发,就能快速搭建各类前台提交表单,完全能满足普通企业站的使用需求。但织梦默认的表单没有验证码防护,安全防护比较薄弱,很容易被网络爬虫、恶意脚本批量刷提交,后台会堆积大量垃圾留言和无效数据,不仅影响正常客户信息的整理,还会增加网站的数据冗余,给日常运维带来不少麻烦。
所以我们在制作DedeCMS企业站时,给自定义表单加装验证码是必备的优化操作。开启验证码验证后,能直接挡住机器人恶意灌水和批量提交,保证前台收集到的客户信息真实有效,让网站数据更精准。下面给大家分享一套完整的实操步骤,新手照着一步步操作就能成功配置。
一、后台创建织梦自定义表单
首先登录DedeCMS网站后台,结合自身建站需求新建对应的自定义表单,根据业务需要设置表单字段、提交权限、数据接收规则,完成表单基础配置并生成前台调用模板,确保表单可以正常前台显示,后台也能正常接收用户提交的数据。
二、前台表单模板插入验证码展示代码
找到自定义表单对应的前台模板文件,在表单输入区域的合适位置插入验证码代码。添加完成后,前台页面会自动显示验证码输入框、验证图片以及更换验证码的按钮,直接复制下方代码使用即可:
<input name="validate" type="text" id="vdcode" style="text-transform:uppercase;" size="8"/><img id="vdimgck" align="absmiddle" onClick="this.src=this.src+'?'" style="cursor: pointer;" alt="看不清?点击更换" src="../include/vdimgck.php"/><a href="javascript:vide(-1);" onClick="changeAuthCode();">看不清? </a>
三、页面添加验证码刷新JS脚本
只添加展示代码的话,无法实现点击更换验证码的功能。我们需要在当前表单页面的底部加入对应的JS脚本,实现验证码动态刷新、点击换图的效果,提升用户填写体验,完整脚本代码如下:
<script type="text/javascript" language="javascript">//验证码 function changeAuthCode(){var num =newDate().getTime();varrand= Math.round(Math.random()*10000); num = num +rand; $('#ver_code').css('visibility','visible');if($("#vdimgck")[0]){ $("#vdimgck")[0].src ="../include/vdimgck.php?tag="+ num;}returnfalse;}</script>
四、修改核心处理文件,开启验证码校验
前台页面样式和功能布局完成后,最关键的一步就是修改系统核心文件,开启后台验证码校验机制,从根源拦截非法提交。进入网站根目录,找到 /plus/diy.php 这个表单核心处理文件,打开后定位到第61行左右的位置,粘贴下方的验证码校验代码。
这段代码的作用是校验用户填写的验证码是否正确,如果留空或者输入错误,网站会自动弹出提示并终止表单提交,彻底杜绝恶意灌水和批量刷数据的情况,具体代码如下:
if(!empty($dede_fields)){$validate=empty($validate) ? '':strtolower(trim($validate));$svali=strtolower(GetCkVdValue());if(($validate==''||$validate!=$svali)&&preg_match("/6/",$safe_gdopen)){ ResetVdValue(); ShowMsg('验证码不正确!',$dede_add,0,1000);exit;}}
所有代码修改完毕并保存文件后,刷新前台表单页面,就能看到完整的验证码功能模块。大家可以自行测试:点击图片能否正常换码、输入错误验证码能否拦截提交、空白提交是否无效、正确填写能否正常提交。全部功能正常运行,就代表验证码配置成功。