代理加盟 2020全新代理計劃 賺錢+省錢雙管齊下,獨立平臺,豐厚利潤!

您現在的位置: 秀站網 > 織夢大學 > 使用教程 >

DedeCMS織夢防止惡意提交自定義表單設置必填項

來源:本站原創 發布時間:2019-03-31 13:25:24熱度:我要評論(0

免費下載,無需注冊無需充值

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=/^[\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" />
    <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>

擴展閱讀:

1:DedeCMS自定義表單獲取填單時間的方法

2:織夢自定義表單圖文教程

轉載請注明來源網址:http://www.yxrxyy.live/dedecms_jq/1446.html

    發表評論

    評論列表(條)

      北京28是什么彩票