织梦CMS系统自定义表单在线预约/在线留言详细教程
现在很多网站,为了提升用户体验,站点提供在线预约的功能或在线留言功能,下面士人网络推出了一个Dedecms织梦做自定义表单在线预约/在线留言的详细教程。
一、创建自定义表单
第一步:核心-频道模型-自定义表单-增加新的自定义表单。
第二步:“自定义表单名称”和“数据表”可自行修改,【数据表】前缀最好和织梦系统的前缀相同dede_。
第三步:添加新的字段。
第四步:“表单提示文字”就是用户填写表单时左侧显示的文字。
提示:若有多个添写的项目,重复第三步和第四步就可以了!
第五步:点击“前台预览”。
第六步:点击“发布信息”。
第七步:点击鼠标右键,查看“网页源代码”。
第八步:把下图中这段位于标签中的代码复制。
二、设置表单js验证
为了防止用户提交错误信息或者胡乱提交信息,需要在客户端设置表单的js验证代码。具体操作如下:
第一步:在from标签前加入一段js验证代码,这里以电话号码不能为空、手机号格式验证
<script type="text/javascript"> function yuyue() { if(document.mem.dianhua.value.length==0) { alert("请填写您的手机号码!"); document.mem.dianhua.focus(); return false; } if(!document.mem.dianhua.value.match(/^1[3|4|5|7|8|9][0-9]{9}$/)){ alert("手机号码格式不正确!"); document.mem.dianhua.focus(); return false; } } </script>
第二步:在form标签里加入 name属性值和onsubmit属性值,要和js代码里的相关属性值一致,如下
<form action="/plus/diy.php" enctype="multipart/form-data" method="post" name="mem" onsubmit="return yuyue();"></form>
三、添加提交时间
用户在什么时候提交的预约或留言,织梦系统自定义表单默认是没有的,现在天水网站建设给大家分享一个简单的增加留言时间。
第一步:添加时间字段
这里需要注意的是,留言时间这里不要选择“时间类型”,选择默认的“文本形式”就可以。
第二步:重新获取表单代码
这里的操作方法,同前面“创建自定义表单”中的“第五、六、七、八”的一样,参照上述即可。
第三步:修改自定义表单在模板中
在获取的代码里就能看见如下代码
<input name="mytime" value="" type="text" id="mytime" />
其中“name”值就是你添加的字段名,如不需要在前台显示的话可以修改type="hidden"
在表单下加入以下js代码:
<script type="text/javascript"> window.onload = function(){ var nowDate = new Date(); var str = nowDate.getFullYear()+"-"+(nowDate.getMonth() + 1)+"-"+nowDate.getDate()+" "+nowDate.getHours()+":"+nowDate.getMinutes()+":"+nowDate.getSeconds(); document.getElementById("mytime").value=str; } </script>
其中代码末端的“mytime”要与字段中的“ID”值相同。这样就做好啦!
四、添加图片验证码
为了防止恶意提交,经常需要给自定义表单设置图片验证码,具体操作如下:
第一步:在自定义模板中加入表单验证代码
<input id="vdcode" name="validate" size="8" style="text-transform:uppercase;" type="text" /> <img align="absmiddle" alt="看不清?点击更换" id="vdimgck" onclick="this.src=this.src+'?'" src="/include/vdimgck.php" style="cursor: pointer;" /> <a href="javascript:vide(-1);" onclick="changeAuthCode();"> </a>
第二步:在form表单前加入以下js代码
<script type="text/javascript" language="javascript"> //验证码 function changeAuthCode() { var num = new Date().getTime(); var rand = Math.round(Math.random() * 10000); num = num + rand; $('#ver_code').css('visibility','visible'); if ($("#vdimgck")[0]) { $("#vdimgck")[0].src = "/include/vdimgck.php?tag=" + num; } return false; } </script>
第三步:打开 /plus/diy.php 文件。找到:
$fieldarr = explode(';', $dede_fields);
在其 下面 增加如下代码:
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; } }
添加完成之后,重新生成页面就可以了。
五、自定义表单限制IP提交在一定时间的次数
第一步:打开/plus/diy.php文件,在里面找到如下代码
if(!is_array($diyform)) { showmsg('自定义表单不存在', '-1'); exit(); }
第二步:在其下面添加如下代码
if(isset($_COOKIE['VOTE_MEMBER_IP'])) { if($_COOKIE['VOTE_MEMBER_IP'] == $_SERVER['REMOTE_ADDR']) { ShowMsg('您已经填写过表单啦','-1'); exit(); } else { setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/'); } } else { setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/'); }
此方法是通过验证cookie的方式防止用户重复提交,如果用户清除cookie的话还是可以提交的。
相关热词搜索: 织梦,CMS,系统,自定义表单,在线预约,在线留言,教