DEDE自定義表單

1.項目需要提交表單



 
2.表單在哪裏設置呢……發現後臺頻道模型中有個自定義表單……
(自定義表單太麻煩了,唯一的好處就是用來添加字段及管理提交信息)


 
列表模板、內容模板、發佈模板……感覺跟項目修改起來太麻煩了(因爲要寫整個頁面,而項目中這個頁面還有其它模塊化部分,比如產品列表等,所以俺就直接放在templets/default/下面了……)
如果你的表單頁不是太複雜的話,建議直接修改DEDE自帶的模板
添加完字段後,仿照/plus/diy.php下面的代碼,自已將表單信息提交到數據庫……


 
 

最後的結果如下



 
<?php
header("Content-type:text/html;charset=utf-8");
if($_POST['code']!='fek'){
 header("Location:index.html");
 exit;
}else{
  checkPost($_POST['username'],'姓名不能爲空!');
  checkPost($_POST['content'],'留言內容不能爲空');
  checkPost($_POST['email'],'電子郵箱不能爲空!','/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/','電子郵箱格式錯誤');
  
foreach($_POST as $key=>$value){
 $_POST[$key]=htmlspecialchars($value,ENT_QUOTES);
} 

$query = "INSERT INTO 表名(`id`, `username` ,`tel`,`fax`,`msn`,`email`,`content`)
VALUES (NULL,'".$_POST['username']."','".$_POST['tel']."','".$_POST['fax']."','".$_POST['msn']."',
'".$_POST['email']."','".$_POST['content']."')";

/* 測試用的
echo '<pre>';
 print_r($_POST);
echo '</pre>';
echo $query;*/

  require_once(dirname(__FILE__)."/include/common.inc.php");

  if($dsql->ExecuteNoneQuery2($query))
        {
            $id = $dsql->GetLastID();
            if($id!=0)
            {
                $goto = "index.html";
                $bkmsg = '發佈成功,請等待管理員處理...';
            }
            else
            {
                $goto = 'index.html';
                $bkmsg = '很遺憾,發佈失敗了!';
            }
            showmsg($bkmsg, $goto);
        }
}

function checkPost($arg,$info,$pattern=null,$errorpatterinfo=null){
 if(empty($pattern) && empty($arg)){
  echo '<script type="text/javascript">alert("'.$info.'");history.back();</script>';
  exit;
 }
 if(!empty($pattern) && !preg_match ($pattern, $arg)){
  echo '<script type="text/javascript">alert("'.$errorpatterinfo.'");history.back();</script>';
 }
}

?>
 表單信息
<form οnsubmit="return proform()" class="feedbackform" action="../feedbackpro.php" method="post">
..</form>
 JS常用驗證腳本
function proform(){
content=document.getElementById("content").value;
if(content==''){    alert("留言內容不能爲空");    return false;   }
username=document.getElementById("username").value;
if(username==''){    alert("姓名不能爲空");    return false;   }

 var tel=document.getElementById("tel").value;
 if(tel!=''){
  var pattern = /^\d{8,}$/;
  if(!tel.match(pattern)){
   alert("電話號碼只能爲數字,並且不能少於8位");
   return false;
  }
 }
 
 var mail=document.getElementById("email").value;
 var pattern = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;
 if(!mail.match(pattern)){
   alert("電子郵箱格式不正確");
   return false;
 }
}
 其它正則表達式
用戶名
 /^[a-z0-9_-]{3,16}$/ 
密碼 
/^[a-z0-9_-]{6,18}$/ 
十六進制值 
/^#?([a-f0-9]{6}|[a-f0-9]{3})$/ 
電子郵箱 
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ 
URL 
/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ 
IP 地址 
/((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ 
HTML 標籤
 /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ 
刪除代碼\\註釋
 (?<!http:|\S)//.*$ 
Unicode編碼中的漢字範圍 
/^[\u2E80-\u9FFF]+$/ 
 
 
 
 
 
 
 
發佈了401 篇原創文章 · 獲贊 7 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章