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]+$/