1.項目需要提交表單
2.表單在哪裏設置呢……發現後臺頻道模型中有個自定義表單……
(自定義表單太麻煩了,唯一的好處就是用來添加字段及管理提交信息)
列表模板、內容模板、發佈模板……感覺跟項目修改起來太麻煩了(因爲要寫整個頁面,而項目中這個頁面還有其它模塊化部分,比如產品列表等,所以俺就直接放在templets/default/下面了……)
如果你的表單頁不是太複雜的話,建議直接修改DEDE自帶的模板
最後的結果如下
<?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]+$/