福建网址 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 安全 > 网站安全

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

时间:2017-07-07 14:40:13  来源:  评论:

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

 
  用默认的/plus/diy.php增加必填判断
 
  大约在40行左右找到如下代码,
 
  $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
 
  后面添加添加代码:
 
  //增加必填字段判断
 
  if($required!=''){
 
  if(preg_match('/,/', $required))
 
  {安徽南洋电缆http://www.ahnydl.com/
 
  $requireds = explode(',',$required);
 
  foreach($requireds as $field){
 
  if($$field==''){
 
  showMsg('带*号的为必填内容,请正确填写', '-1');
 
  exit();
 
  }
 
  }
 
  }else{
 
  if($required==''){
 
  showMsg('带*号的为必填内容,请正确填写', '-1');
 
  exit();
 
  }
 
  }
 
  }
 
  //end安徽南洋电缆http://www.ahnydl.com/
 
  在自定义表单模板找到
 
  <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;
 
  }安徽南洋电缆http://www.ahnydl.com/
 
  })
 
  });
 
  -->
 
  </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>
 
  前台部分实例
 
  <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" />
 
  <div class="tuancon">
 
  <h3>重庆装修团购申请,立省5000元</h3>
 
  <div 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>
 
  </div>
 
  <div 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>安徽南洋电缆http://www.ahnydl.com/
 
  <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>
 
  </div>
 
  <div class="clear"></div>
 
  <div class="sheng_box"><input class="btn1" type="submit" value="免费申请装修"/></div>
 
  <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" />
 
  </div>
 
  </form>
赞一个
返回首页
返回首页
上一篇:治标更治本,如何从根源防护DDoS攻击 下一篇:DedeCMS电脑端列表和内容跳转到对应移动端

最新图文
治标更治本,如何从根源防护DDoS攻击
治标更治本,如何从根源防护DDoS攻击
图说:腾讯云为网址安全保驾护航
图说:腾讯云为网址安全保驾护航
站长推荐