織夢(mèng)CMS系統(tǒng)自定義表單在線預(yù)約/在線留言詳細(xì)教程
現(xiàn)在很多網(wǎng)站,為了提升用戶體驗(yàn),站點(diǎn)提供在線預(yù)約的功能或在線留言功能,下面士人網(wǎng)絡(luò)推出了一個(gè)Dedecms織夢(mèng)做自定義表單在線預(yù)約/在線留言的詳細(xì)教程。
一、創(chuàng)建自定義表單
第一步:核心-頻道模型-自定義表單-增加新的自定義表單。
第二步:“自定義表單名稱”和“數(shù)據(jù)表”可自行修改,【數(shù)據(jù)表】前綴最好和織夢(mèng)系統(tǒng)的前綴相同dede_。
第三步:添加新的字段。
第四步:“表單提示文字”就是用戶填寫(xiě)表單時(shí)左側(cè)顯示的文字。
提示:若有多個(gè)添寫(xiě)的項(xiàng)目,重復(fù)第三步和第四步就可以了!
第五步:點(diǎn)擊“前臺(tái)預(yù)覽”。
第六步:點(diǎn)擊“發(fā)布信息”。
第七步:點(diǎn)擊鼠標(biāo)右鍵,查看“網(wǎng)頁(yè)源代碼”。
第八步:把下圖中這段位于標(biāo)簽中的代碼復(fù)制。
二、設(shè)置表單js驗(yàn)證
為了防止用戶提交錯(cuò)誤信息或者胡亂提交信息,需要在客戶端設(shè)置表單的js驗(yàn)證代碼。具體操作如下:
第一步:在from標(biāo)簽前加入一段js驗(yàn)證代碼,這里以電話號(hào)碼不能為空、手機(jī)號(hào)格式驗(yàn)證
<script type="text/javascript"> function yuyue() { if(document.mem.dianhua.value.length==0) { alert("請(qǐng)?zhí)顚?xiě)您的手機(jī)號(hào)碼!"); document.mem.dianhua.focus(); return false; } if(!document.mem.dianhua.value.match(/^1[3|4|5|7|8|9][0-9]{9}$/)){ alert("手機(jī)號(hào)碼格式不正確!"); document.mem.dianhua.focus(); return false; } } </script>
第二步:在form標(biāo)簽里加入 name屬性值和onsubmit屬性值,要和js代碼里的相關(guān)屬性值一致,如下
<form action="/plus/diy.php" enctype="multipart/form-data" method="post" name="mem" onsubmit="return yuyue();"></form>
三、添加提交時(shí)間
用戶在什么時(shí)候提交的預(yù)約或留言,織夢(mèng)系統(tǒng)自定義表單默認(rèn)是沒(méi)有的,現(xiàn)在天水網(wǎng)站建設(shè)給大家分享一個(gè)簡(jiǎn)單的增加留言時(shí)間。
第一步:添加時(shí)間字段
這里需要注意的是,留言時(shí)間這里不要選擇“時(shí)間類型”,選擇默認(rèn)的“文本形式”就可以。
第二步:重新獲取表單代碼
這里的操作方法,同前面“創(chuàng)建自定義表單”中的“第五、六、七、八”的一樣,參照上述即可。
第三步:修改自定義表單在模板中
在獲取的代碼里就能看見(jiàn)如下代碼
<input name="mytime" value="" type="text" id="mytime" />
其中“name”值就是你添加的字段名,如不需要在前臺(tái)顯示的話可以修改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”值相同。這樣就做好啦!
四、添加圖片驗(yàn)證碼
為了防止惡意提交,經(jīng)常需要給自定義表單設(shè)置圖片驗(yàn)證碼,具體操作如下:
第一步:在自定義模板中加入表單驗(yàn)證代碼
<input id="vdcode" name="validate" size="8" style="text-transform:uppercase;" type="text" /> <img align="absmiddle" alt="看不清?點(diǎn)擊更換" 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"> //驗(yàn)證碼 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>
第三步:打開(kāi) /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('驗(yàn)證碼不正確!',-1,0,1000); exit; } }
添加完成之后,重新生成頁(yè)面就可以了。
五、自定義表單限制IP提交在一定時(shí)間的次數(shù)
第一步:打開(kāi)/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('您已經(jīng)填寫(xiě)過(guò)表單啦','-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,'/'); }
此方法是通過(guò)驗(yàn)證cookie的方式防止用戶重復(fù)提交,如果用戶清除cookie的話還是可以提交的。
相關(guān)熱詞搜索: 織夢(mèng),CMS,系統(tǒng),自定義表單,在線預(yù)約,在線留言,教