首页 » 开源/框架 » DEDE » 正文

织梦Dedecms为自定义表单添加验证码功能

使用织梦Dedecms自定义表单的时候,即使你做了字段的验证,也很有可能被人刷很多垃圾的内容,更加安全的一个方法是为自定义表单添加上验证码功能。今天我就来为大家分享一下怎样给自定义表单添加验证码!

一、添加表单验证码

首先登录网站后台,找到你自定义表单的管理(修改)页面,你会看到表单发布时调用的模板,如下图:

织梦自定义表单验证码

这个模板位于 /templets/plus/ 目录下,我们打开相应的模板,在

<?php
	echo $postform;
?>

之后,</table>之前加入如下代码:

<tr>
  <td align="right" valign="top">验证码:</td>
  <td><input id="vdcode" type="text" name="validate" style="text-transform:uppercase;"/><img id="vdimgck" align="absmiddle" onClick="this.src=this.src+'?'" style="cursor: pointer;" alt="看不清?点击更换" src="../include/vdimgck.php"/>
</td>
</tr>

保存。

然后刷新一下表单提交页面看看,是不是已经出现了验证码?

织梦自定义表单验证码

二、对输入验证码进行校验

下面我们要做的就是对验证码进行验证。打开 /puls/diy.php 页面,在 elseif($do == 2) { 里添加如下代码(一定要位于这个大括号里的最前面):

elseif($do == 2)
{
	$validate = empty($validate) ? '' : strtolower(trim($validate));
	$svali = strtolower(GetCkVdValue());
	$backurl = 'diy.php?action=post&diyid=1';	//这里换成你表单的地址
	if($validate=='' || $validate != $svali){
		ResetVdValue();
		ShowMsg('验证码不正确!',$backurl,0,1000);
		exit;
	}

保存即可。再次刷新一下表单,提交测试下~~

提示:1. 把代码加到 diy.php 中,你所有的自定义表单模板都需要加上验证码,没加的会提示“验证码不正确”;当然,你也可以根据 $diyid 来设置是否进行验证码校验。2. 第二段代码中的 $backurl 可以直接写成 -1,这时候必须把 ResetVdValue(); 去掉,否则会一直提示“验证码不正确”,因为 $backurl 写成 -1 时,表单返回上一个页面,验证码图片并没有刷新,而 ResetVdValue(); 又会把已保存的验证码值清空,导致校验失败。

发表评论