使用织梦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(); 又会把已保存的验证码值清空,导致校验失败。