注册 | 登录 | 网址 欢迎访问八百站长

dedecms自定义表单加入验证码及必填项的实现

2016/5/8 21:35:34 作者:站长日记 来源:http://blog.aizhet.com/web/10574.html 浏览:2037次

加入验证码:

织梦dedecms网站给自定义表单加dede模板自带验证码的方法。

有时候,我们因为需要给dede网站的自定义表单添加验证码,防止恶意填写表单提交。

我们可以用以下的方法来实现:

首先,我们要找到 /plus/diy.php 这个文件

在头部引入文件:

require_once(DEDEINC.'/membermodel.cls.php');

然后找到

  1. elseif($do == 2)  

  2.  

  3. {  在这个地方加入代码块  

  4.  

  5. //验证码验证  

  6.  

  7. $svali = GetCkVdValue();  

  8.  

  9. if(preg_match("/1/",$safe_gdopen)){  

  10.  

  11. if(strtolower($vdcode)!=$svali || $svali=='')  

  12.  

  13. {  

  14.  

  15. ResetVdValue();  

  16.  

  17. ShowMsg('验证码错误!''-1');  

  18.  

  19. exit();  

  20.  

  21. }  

  22.  

  23. }  

修改好后保存一下文件。

第二步:在使用验证码的自定义表单静态页面中插入代码块

  1. <input type="text" style="width: 50px; text-transform: uppercase;" id="vdcode" name="vdcode"/> 

  2.  

  3. <img id="vdimgck" align="absmiddle" onclick="this.src=this.src+'?'" style="cursor: pointer;" alt="看不清?点击更换" src="/include/vdimgck.php"/> 看不清? <a href="javascript:void(0)" onclick="changeAuthCode();">点击更换</a> 

在这个静态页面里还得引用JQuery

再加入 JS代码块

  1. <script type="text/javascript">  

  2. $ = jQuery;  

  3. function changeAuthCode() {  

  4. var num = new Date().getTime();  

  5. var rand = Math.round(Math.random() * 10000);  

  6. num = num + rand;  

  7. $('#ver_code').css('visibility','visible');  

  8. if ($("#vdimgck")[0]) {  

  9. $("#vdimgck")[0].src = "../include/vdimgck.php?tag=" + num;  

  10. }  

  11. return false;  

  12. }  

  13. </script> 

好了,现在试一试,是不是可以实现验证码的提交了?一个简单的dedecms自定义表单dede模板自带验证码的功能就实现了。

必填项的实现:

1、先在要发布表单的模板上加<script src='你的路径/js.js' type="text/javascript"></script>;
2、在你自定义的路径新建文件js.js,然后复制以下内容粘贴保存;代码:
 

  1. <!--  

  2. $(document).ready(function()  

  3. {  

  4. //验证  

  5. $('#complain').submit(function ()  

  6. {  

  7. if($('#name').val()==""){  

  8. $('#name').focus();  

  9. alert("用户名不能为空!");  

  10. return false;  

  11. }  

  12. if($('#tel').val()=="")  

  13. {  

  14. $('#tel').focus();  

  15. alert("联系电话不能为空!");  

  16. return false;  

  17. }  

  18. if($('#title').val()=="")  

  19. {  

  20. $('#title').focus();  

  21. alert("标题不能为空!");  

  22. return false;  

  23. }  

  24. if($('#text').val()=="")  

  25. {  

  26. $('#text').focus();  

  27. alert("具体内容不能为空!");  

  28. return false;  

  29. }  

  30. })  

  31.  

  32.    

  33.  

  34. });  

  35. -->  

注:
$('#complain').submit(function ()  //complain为自定义表单的ID,如果生成的表单没有可以自行加上,即 id="complain"
if($('#name').val()==""){
$('#name').focus();        //#name为要验证表单中的ID,如想让用户名不能为空, 在后台用户名的数据字段名设为name,下同
3、设置好后更新就可以看到效果了。