织梦自定义表单提交防恶意刷与必填验证完整教程

织梦自定义表单提交为了防止用户恶意提交,下面分享一套完整的解决方案,包含后台必填字段判断与前端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 标签:

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

在 form 标签下面加上隐藏输入字段,用于传递必填字段名称:

<input type="hidden" name="required" value="数据字段名1,数据字段名2,数据字段名3" />

例如:

<input type="hidden" name="required" value="czdwmc,xm,sj,ppmc,kd,hhbzzw,ptbzzw" />

第三步:使用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=/^[\u4e00-\u9fa5]+$/;
 if(myNum.test($("#name").val())){}else{alert("请输入中文名字");return false;};
  var myNum=/^[\u4e00-\u9fa5]+$/;
 if(myNum.test($("#xq").val())){}else{alert("请输入小区中文名字");return false;};
  var mymj=/^([1-9][0-9]{1,3})+(.[0-9]{1,4})?$/
 if(mymj.test($("#mj").val())){}
 else{alert("户型面积请输入首位不为零并且在2-4位的有效数字有效数字");return false;};
  var myphone=/^\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>
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。