主頁(yè) > 網(wǎng)站建設(shè) > 建站知識(shí) > DedeCMS防止惡意提交自定義表單設(shè)置必填項(xiàng)

DedeCMS防止惡意提交自定義表單設(shè)置必填項(xiàng)

POST TIME:2017-11-12 23:44

許多企業(yè)網(wǎng)站會(huì)有提交訂單的功能,dedecms自定義表單制作就能滿足,為了防止用戶惡意提交表單,可以在自定義表單的字段設(shè)置必填項(xiàng)或者判斷輸入的值是否符合規(guī)定的功能,主要有兩種方法處理:修改表單源文件(不靈活,一個(gè)網(wǎng)站有可能提交多個(gè)表單);JS判斷輸入值(推薦)。

用默認(rèn)的/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('帶*號(hào)的為必填內(nèi)容,請(qǐng)正確填寫', '-1');
               exit();
           }
       }
   }else{
       if($required==''){
           showMsg('帶*號(hào)的為必填內(nèi)容,請(qǐng)正確填寫', '-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() 
{ 
//驗(yàn)證 
$('#complain').submit(function () 
{ 
if($('#name').val()==""){ 
$('#name').focus(); 
alert("用戶名不能為空!"); 
return false; 
} 
if($('#tel').val()=="") 
{ 
$('#tel').focus(); 
alert("聯(lián)系電話不能為空!"); 
return false; 
} 
if($('#title').val()=="") 
{ 
$('#title').focus(); 
alert("標(biāo)題不能為空!"); 
return false; 
} 
if($('#text').val()=="") 
{ 
$('#text').focus(); 
alert("具體內(nèi)容不能為空!"); 
return false; 
} 
}) 
}); 
-->
</script>

上面只能判斷數(shù)值是否為空,結(jié)合正則表達(dá)式,能準(zhǔn)確判斷輸入的表單信息是否為規(guī)定格式數(shù)據(jù)。舉例說(shuō)明:

<script type="text/javascript">
  $(function(){
  $(".btn").click(function(){
  var myNum=/^[\u4e00-\u9fa5]+$/;
 if(myNum.test($("#name").val())){}else{alert("請(qǐng)輸入中文名字");return false;};
  var myNum=/^[\u4e00-\u9fa5]+$/;
 if(myNum.test($("#xq").val())){}else{alert("請(qǐng)輸入小區(qū)中文名字");return false;};
  var mymj=/^([1-9][0-9]{1,3})+(.[0-9]{1,4})?$/
 if(mymj.test($("#mj").val())){}
 else{alert("戶型面積請(qǐng)輸入首位不為零并且在2-4位的有效數(shù)字有效數(shù)字");return false;};
  var myphone=/^\d{8,11}$/
 if(myphone.test($("#phone").val())){}
 else{alert("電話位數(shù)在8-11位");return false;};
 if($("input[type=text]").val()==''){alert("文本框不能為空!");return false;}
 else {alert("發(fā)布成功!請(qǐng)保持電話暢通!客服人員會(huì)在24小時(shí)之內(nèi)與您聯(lián)系!");return true;}});});
</script>

前臺(tái)部分實(shí)例

<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>重慶裝修團(tuán)購(gòu)申請(qǐng),立省5000元</h3>
     <div class="tuancon_L">
      <p><label>我的稱呼<em>*</em></label><input class="form1" type="text" name="name" id="name"/></p>
      <p><label>我的小區(qū)<em>*</em></label><input class="form1" type="text" name="xq" id="xq"/></p>
      <p><label>聯(lián)系電話<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>衛(wèi)生間數(shù)</label>
         <select name='wc'>
          <option value='1個(gè)'>1個(gè)</option>
          <option value='2個(gè)'>2個(gè)</option>
          <option value='2個(gè)以上'>2個(gè)以上</option>
         </select>
      </p>
      <p><label>陽(yáng)臺(tái)面積</label><input class="form1" type="text" name="ytmj" id="ytmj"/></p>
      <p><label>喜歡風(fēng)格</label>
        <select name='fg'>
         <option value='現(xiàn)代簡(jiǎn)約風(fēng)格'>現(xiàn)代簡(jiǎn)約風(fēng)格</option>
         <option value='地中海風(fēng)格'>地中海風(fēng)格</option>
         <option value='簡(jiǎn)歐風(fēng)格'>簡(jiǎn)歐風(fēng)格</option>
         <option value='歐式風(fēng)格'>歐式風(fēng)格</option>
         <option value='中式風(fēng)格'>中式風(fēng)格</option>
         <option value='美式風(fēng)格'>美式風(fēng)格</option>
         <option value='后現(xiàn)代風(fēng)格'>后現(xiàn)代風(fēng)格</option>
         <option value='新古典風(fēng)格'>新古典風(fēng)格</option>
         <option value='其他風(fēng)格'>其他風(fēng)格</option>
        </select>
       </p>
      </div>
      <div class="clear"></div>
      <div class="sheng_box"><input class="btn1" type="submit" value="免費(fèi)申請(qǐng)裝修"/></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>



收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266