魔扣论坛

魔扣源码论坛业务
查看: 715|回复: 6

[织梦教程] 织梦DedeCMS自定义表单中添加验证码的方法

[复制链接]
  • TA的每日心情
    无聊
    12 小时前
  • 签到天数: 2956 天

    [LV.Master]开坛老将

    7万

    主题

    227

    回帖

    27万

    积分

    管理员

    Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

    魔扣币
    745731
    贡献
    157909
    威望
    32799

    最佳新人活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2019-6-1 17:42:05 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    在用DedeCMS的时候,通过自定义表单来做在线留言,这个确实比织梦自带的留言簿模块要方便,但是实现起来还是诸多bug。所以还是用Dede的自定义表单来实现比较靠谱,但是使用自定义表单之后,因为没有加验证码,导致一段时间内被人恶意攻击,填写了几千个留言,头都大了,只好去数据库中批量删除。此时之后,淘站网就加深了这个验证码的认识,不论什么样的表单,一定要记得加上验证码。
    今天,淘站网就说说如何在DedeCMS的自定义表单中添加验证码,虽然在网上有很多教程,但是测试了大部分,发现都不适用,淘站网还是自己研究一下,终于自己搞定。淘站网测试的DedeCMS版本为DedeCMS V5.7 SP1,大家可以参考一下。
    一、修改自定义表单控制文件
    1.打开/plus/diy.php文件,在头部随意位置加上代码(网站开通了会员功能模块必加,没有开通会员功能则略过此步):

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

    2.加完上述代码之后,查找代码:

    elseif($do == 2)
            {

    在下面加上代码:

      $svali = GetCkVdValue();
                      if(preg_match("/1/",$safe_gdopen)){
                              if(strtolower($vdcode)!=$svali || $svali=='')
                              {
                                      ResetVdValue();
                                      ShowMsg('验证码错误!', '-1');
                                      exit();
                              }
                        }

    修改之后保存文件并上传。
    二、自定义表单模版页修改
    1.引入jQuery文件(如果模版中已经引用了jQuery文件,则忽略此步。):

    <script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/js/jquery.js"></script>

    jQuery下载:jQuery.js文件
    2.在需要插入验证码的地方加上代码:

    <input id="vdcode" style="width: 50px; text-transform: uppercase;" type="text" name="vdcode"/>
    <img id="vdimgck" style="cursor: pointer;" onclick="this.src=this.src+'?'" src="/include/vdimgck.php"align="absmiddle"/>

    3.添加判断验证码正确的js代码带模版底部或头部:

    <script type="text/javascript">// <![CDATA[
    $ = jQuery;
    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>

    完成后,测试一下,效果如下图:

    是不是完美实现了自定义表单中添加验证码功能?妈妈再也不怕我的网站被恶意提交表单了!

    会员购买:>> 点击购买 << | 魔扣币购买:>> 点击购买 <<
    承接业务:服务器代维丨网站托管丨SEO
    联系客服:微信:morko-net | QQ:1367681973

    该用户从未签到

    3

    主题

    241

    回帖

    487

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    243
    贡献
    243
    威望
    0
    发表于 2019-6-1 19:28:47 来自手机 | 显示全部楼层
    你以为我会眼睁睁地看着你去送死吗?魔扣源码论坛,我会闭上眼睛的!  

    该用户从未签到

    1

    主题

    271

    回帖

    543

    积分

    高级魔扣

    Rank: 4

    魔扣币
    271
    贡献
    271
    威望
    0
    发表于 2019-8-13 19:59:49 | 显示全部楼层
    刚才看那些旧照片,想去属于我们的记忆,突然好想来看看你!魔扣源码论坛想念你!

    该用户从未签到

    2

    主题

    253

    回帖

    511

    积分

    高级魔扣

    Rank: 4

    魔扣币
    256
    贡献
    256
    威望
    0
    发表于 2019-8-28 11:08:00 | 显示全部楼层
    看起来好像不错的样子

    该用户从未签到

    1

    主题

    258

    回帖

    517

    积分

    高级魔扣

    Rank: 4

    魔扣币
    258
    贡献
    258
    威望
    0
    发表于 2019-9-30 13:06:49 | 显示全部楼层
    是爷们的娘们的都帮顶!大力支持

    该用户从未签到

    1

    主题

    222

    回帖

    447

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    224
    贡献
    224
    威望
    0
    发表于 2020-6-16 17:52:28 | 显示全部楼层
    人生中难得一个挚友,难获一份真诚;让我们珍藏网络中每一个感动,珍惜我们不相见却相遇,不相识而心相通的空间情缘;魔扣源码论坛祝愿我的朋友永远快乐!永远幸福!愿友谊天长地久!

    该用户从未签到

    0

    主题

    274

    回帖

    548

    积分

    高级魔扣

    Rank: 4

    魔扣币
    274
    贡献
    274
    威望
    0
    发表于 2020-6-18 23:40:50 | 显示全部楼层
    学习下
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表