欢迎来到欣怡建站!我们致力于提供优质的网站建站服务
注册

DedeCMS织梦防止恶意提交自定义表单设置必填项

相关案例演示

dede表单

许多企业网站会有提交订单的功能,dedecms自定义表单制作就能满足,为了防止用户恶意提交表单,可以在自定义表单的字段设置必填项或者判断输入的值是否符合规定的功能,主要有两种方法处理:修改表单源文件(不灵活,一个网站有可能提交多个表单);JS判断输入值(推荐)。

用默认的/plus/diy.php增加必填判断

大约在40行左右找到如下代码,

$dede_fields = empty($dede_fields) ? '' : trim($dede_fields);  

后面添加添加代码:

//增加必填字段判断 if($required!=''){ if(preg_match('/,/', $required)) { $requireds = explode(',',$required); foreach($requireds as $field){ if($$field==''){ showMsg('带*号的为必填内容,请正确填写', '-1'); exit(); } } }else{ if($required==''){ showMsg('带*号的为必填内容,请正确填写', '-1'); exit(); } } } //end  

在自定义表单模板找到

<form action="/plus/diy.php" enctype="multipart/form-data" method="post">  

下面加入以下代码(value="自定义字段")

<input type="hidden" name="required" value="content,name,tel" />  
用JS判断

红色部分为自定义字段,把以下代码放在</head>之前,

<script type='text/javascript'> <!-- $(document).ready(function() { //验证 $('#complain').submit(function () { if($('#name').val()==""){ $('#name').focus(); alert("用户名不能为空!"); return false; } if($('#tel').val()=="") { $('#tel').focus(); alert("联系电话不能为空!"); return false; } if($('#title').val()=="") { $('#title').focus(); alert("标题不能为空!"); return false; } if($('#text').val()=="") { $('#text').focus(); alert("具体内容不能为空!"); return false; } }) }); --> </script>  

上面只能判断数值是否为空,结合正则表达式,能准确判断输入的表单信息是否为规定格式数据。举例说明:

<script type="text/javascript"> $(function(){ $(".btn").click(function(){ var myNum=http://www.dede58.com/^[\u4e00-\u9fa5]+$/; if(myNum.test($("#name").val())){}else{alert("请输入中文名字");return false;}; var myNum=http://www.dede58.com/^[\u4e00-\u9fa5]+$/; if(myNum.test($("#xq").val())){}else{alert("请输入小区中文名字");return false;}; var mymj=http://www.dede58.com/^([1-9][0-9]{1,3})+(.[0-9]{1,4})?$/ if(mymj.test($("#mj").val())){} else{alert("户型面积请输入首位不为零并且在2-4位的有效数字有效数字");return false;}; var myphone=http://www.dede58.com/^\d{8,11}$/ if(myphone.test($("#phone").val())){} else{alert("电话位数在8-11位");return false;}; if($("input[type=text]").val()==''){alert("文本框不能为空!");return false;} else {alert("发布成功!请保持电话畅通!客服人员会在24小时之内与您联系!");return true;}});}); </script>  
前台部分实例 <form action="/plus/diy.php" enctype="multipart/form-data" method="post"> <input type="hidden" name="action" value="post" /> <input type="hidden" name="diyid" value="1" /> <input type="hidden" name="do" value="2" /> <p class="tuancon"> <h3>重庆装修团购申请,立省5000元</h3> <p class="tuancon_L"> <p><label>我的称呼<em>*</em></label><input class="form1" type="text" name="name" id="name"/></p> <p><label>我的小区<em>*</em></label><input class="form1" type="text" name="xq" id="xq"/></p> <p><label>联系电话<em>*</em></label><input class="form1" type="text" name="phone" id="phone"/></p> <p><label>Q Q </label><input class="form1" type="text" name="qq" id="qq"/></p> </p> <p class="tuancon_R"> <p><label>户型面积<em>*</em></label><input class="form1" type="text" name="mj" id="mj"/></p> <p><label>卫生间数</label> <select name='wc'> <option value='1个'>1个</option> <option value='2个'>2个</option> <option value='2个以上'>2个以上</option> </select> </p> <p><label>阳台面积</label><input class="form1" type="text" name="ytmj" id="ytmj"/></p> <p><label>喜欢风格</label> <select name='fg'> <option value='现代简约风格'>现代简约风格</option> <option value='地中海风格'>地中海风格</option> <option value='简欧风格'>简欧风格</option> <option value='欧式风格'>欧式风格</option> <option value='中式风格'>中式风格</option> <option value='美式风格'>美式风格</option> <option value='后现代风格'>后现代风格</option> <option value='新古典风格'>新古典风格</option> <option value='其他风格'>其他风格</option> </select> </p> </p> <p class="clear"></p> <p class="sheng_box"><input class="btn1" type="submit" value="免费申请装修"/></p> <input type="hidden" name="dede_fields" value="xq,text;fg,select;name,text;phone,text;mj,float;qq,int;wc,select;ytmj,int" /> <input type="hidden" name="dede_fieldshash" value="c53edcf88ed9787e2fe3266b16e2778a" /> </p> </form>  

作者:欣怡建站 挑错 时间:2020-01-08 18:49
首先声明,只要是我们的vip会员所有源码均可以免费下载,不做任何限制
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ(984818011)进行交流。
相关教程
在线客服