更多



DeDeCMS自定义表单提交数据时加入验证码功能 不指定

郝聪 , 2018/01/08 18:23 , 建站优化 , 评论(1) , 阅读(5007) , Via 本站原创 | |

在网站建设中,部分网站可能需要在前台收集用户、访客提交的一些数据信息,例如学校或培训机构网站的在线报名、产品网站的在线订单等,对于使用织梦dedecms建站程序的站长,可以通过dedecms提供的自定义表单功能进行制作,下面以制作“在线报名”表单为例子讲解下如何制作dedecms自定义表单并在前台调用!为了避免评论机器人之类的软件工具提交垃圾无用的信息,给织梦自定义表单添加验证码功能是非常有必要的。dedecms自定义表单默认没有验证码功能,但是站长可以通过修改程序源文件给表单添加自定义表单验证码。

dedecms自定义表单制作步骤:

1、在“后台——核心”部分的“频道模型”选项卡下找到并点击“自定义表单”选项:

进入“自定义表单管理”界面后点击“增加新的自定义表单”:

进入新增自定义表单设置界面,设置好相关的参数后,点击确定:

保存确定之后,返回“自定义表单管理”界面,在刚刚创建的表单后面,点击“更改”图标,进入编辑界面清加表单字段:

在表单编辑界面,点击“添加新字段”,然后根据表单需求填写相关的参数,然后点击确定:

根据中文提示输入各项参数:

提示:如果有多个表单字段,只需要重新“第四、第五”步骤即可

表单调用:

1、点击更改图标,把该表单的“前台列表和内容页公开?”设置为“完全公开”或者“公开审核过的”,点击确定;

2、在自定义表单管理界面,点击该表单的“前台预览”:

在预览界面中,点击右上角的“发布信息”:

审查源代码,这时就可以看见刚刚创建的自定义表单字段“姓名”,找到该表单的代码,并复制下来:(ps:一定要复制全? 从form开始到form结束)

?

把复制的代码添加到想要调用表单的位置的对应模板即可。

在页面中添加验证码相关的表单,参考上一步审查源代码的验证码

XML/HTML代码
    ????
  1. <input?name="validate"?type="text"?id="vdcode"?style="text-transform:uppercase;"?size="8"/>???
  2. ????
  3. <img?id="vdimgck"?class="yzmimg"?align="absmiddle"?onClick="this.src=this.src+'?'"?style="cursor:?pointer;"?alt="看不清?点击更换"?src="../include/vdimgck.php"/>???
  4. ????
  5. <a?href="javascript:vide(-1);"?onClick="changeAuthCode();">看不清??a>??

在网页底部

前添加以下JavaScript代码,用于实现“看不清”功能:
XML/HTML代码
    ????
  1. <script?type="text/javascript">???
  2. ????
  3. $?=?jQuery;???
  4. ????
  5. function?changeAuthCode()?{???
  6. ????
  7. var?num?=?new?Date().getTime();???
  8. ????
  9. var?rand?=?Math.round(Math.random()?*?10000);???
  10. ????
  11. numnum?=?num?+?rand;???
  12. ????
  13. $('#ver_code').css('visibility','visible');???
  14. ????
  15. if?($("#vdimgck")[0])?{???
  16. ????
  17. $("#vdimgck")[0].src?=?"../include/vdimgck.php?tag="?+?num;???
  18. ????
  19. }???
  20. ????
  21. return?false;???
  22. ????
  23. }???
  24. ????
  25. script>??

补充说明:即便添加了验证码功能,但实际测试发现,即便验证码输入错误,表单数据同样会成功提交,因此,需要对程序代码进行修改。

编辑/plus/diy.php文件,找到代码:

XML/HTML代码
    ????
  1. $fieldarr?=?explode(';',?$dede_fields);??

需要添加的代码

XML/HTML代码
    ????
  1. //新增验证码??
  2. ????
  3. if(!empty($dede_fields))??
  4. ????
  5. ????{???
  6. ????
  7. ????????$validate?=?empty($validate)???''?:?strtolower(trim($validate));??????????????
  8. ????
  9. ????????$svali?=?strtolower(GetCkVdValue());??
  10. ????
  11. ????????if(($validate==''?||?$validate?!=?$svali)?&&?preg_match("/6/",$safe_gdopen)){???
  12. ????
  13. ????????????ResetVdValue();???
  14. ????
  15. ????????????ShowMsg('验证码不正确!',$dede_add,0,1000);???
  16. ????
  17. ????????????echo?'<script?language="javascript">history.go(-1);script>';??
  18. ????
  19. ????????????exit();??
  20. ????
  21. ????????}???
  22. ????
  23. ????}??
相关日志
DeDeCMS自定义表单实现字段默认为必填项
DeDeCMS调用自定义表单内容以及实现分页功能(Datalist运用实例)
DeDeCMS的channel标签支持limit(属性)功能
DeDeCMS获取上级栏目ID及顶级栏目ID
让DeDeCMS的channel标签支持调用栏目描述description及关键词keywords
DeDeCMS调用栏目排序编号(自动递增数字)
DeDeCMS安全设置:更改data目录命名
DedeCMS修改数据库表前缀"_dede"的方法
DeDeCMS调用友情链接的标签
Tags: , ,
头条新闻 Email
2018/01/12 10:27
文章不错非常喜欢
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]

?