一,在后台左侧点击核心-》自定义表单-》增加新的自定义表单,按照提示填写信息,保存出来再点击编辑进去添加字段
二,自定义表单的调用,网上有调用方法,可是测试没成功,我就用自己的方法吧,点击表单的预览-》发布信息,会看到表单的模板,然后鼠标右键查看源代码,找到表单的代码,把关键的代码复制出来,就可以变成前端想要的表单了。
三,一般表单都需要验证字段和防止恶意提交
1)验证字段:
找到项目根目录下的plus/diy.php,在59行有个if(!empty($dede_fields))这个判断里面就可以添加我们验证字段的代码了,示例:
/*验证表单字段*/
if ($nickname == '') { //昵称不能为空
ShowMsg('昵称不能为空','-1',0,1000);
exit;
} elseif (!preg_match("/^1[34578]\d{9}$/", $clientele_tell) ){
ShowMsg('请输入正确的手机号','-1',0,1000);
exit;
} elseif (!is_numeric($clientele_qq) ) {
ShowMsg('请输入正确的QQ','-1',0,1000);
exit;
} elseif ( empty($message) ) {
ShowMsg('留言不能为空','-1',0,1000);
exit;
}
2)验证码:
在前端验证码的地方添加代码:
<inputname="validate" type="text" id="vdcode"style="text-transform:uppercase;width:100px" size="8"/>
<imgid="vdimgck" align="absmiddle"onClick="this.src=this.src+'?'" style="cursor: pointer;"alt="看不清?点击更换"src="../include/vdimgck.php"/>
再找到项目根目录下的plus/diy.php,在59行有个if(!empty($dede_fields))这个判断里面添加如下代码:
/*添加验证码*/
$validate = empty($validate) ?'' : strtolower(trim($validate));
$svali =strtolower(GetCkVdValue());
if(($validate=='' || $validate!= $svali) && preg_match("/6/",$safe_gdopen)){
ResetVdValue();
ShowMsg('验证码不正确!','-1',0,1000);
exit;
}
发现一个问题,在dedecms中自定义表单中字段英文名和系统中新添加的变量的英文名如果是一样的话,就会影响到表单中字段的提交,提交的表单中该字段的值是系统中新添加变量的值。