当前位置:首 页>常见问题>织梦DedeCMS在自定义表单里加入验证码的方法>

织梦DedeCMS在自定义表单里加入验证码的方法

在很多建站需求中,需要一些额外的表单供前台用户提交。以便于收集、统计、分析及处理更多的数据。比如:在线订单、在线报名等一些常见的互动应用。

利用织梦内容管理系统(DedeCMS)自带提供的自定义表单功能即可满足大多数的此类需求。

通过给自定义表单加入验证码的功能,可以防止一些用户恶意提交。

  • 1、先进入DedeCMS后台生成自定义表单。

  • 2、在自定义表单模板中添加验证码代码,如下:  

div align='center' class="yzm" style='width:448px;overflow: hidden;'>

<input name="validate" type="text" id="vdcode" class='txt' style="text-transform:uppercase; width: 250px;float: left;" size="8"/>

<img id="vdimgck" class="yzmimg" align="absmiddle" onClick="this.src=this.src+'?'" style="cursor: pointer;float: left; width: 100px; margin-top: 10px; margin-left: 45px;" alt="看不清?点击更换" src="../include/vdimgck.php"/>

</div>


  • 3、在当前页添加JS代码,如下:   

<script type="text/javascript">

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>


  • 4、修改订单处理页面,打开网站根目录/plus/diy.php文件, 添加验证代码到第61行位置。如下:   

//新增验证码


        $validate = empty($validate) ? '' : strtolower(trim($validate));


        $svali = strtolower(GetCkVdValue());


        if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)){

            ResetVdValue();

            ShowMsg('验证码不正确!',$_SERVER['HTTP_REFERER'],0,1000);

            die();

        }

            $fieldarr = explode(';', $dede_fields);

            if(is_array($fieldarr))

            {

                foreach($fieldarr as $field)

                {

                    if($field == '') continue;

                    $fieldinfo = explode(',', $field);

                    if($fieldinfo[1] == 'textdata')

                    {

                        ${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));

                        ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});

                    }

                    else

                    {

                        ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','diy', $fieldinfo[0]);

                    }

                    $addvar .= ', `'.$fieldinfo[0].'`';

                    $addvalue .= ", '".${$fieldinfo[0]}."'";

                }

            }


        }


        $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar)  VALUES (NULL, 0 $addvalue); ";


        if($dsql->ExecuteNoneQuery($query))

        {

            $id = $dsql->GetLastID();

            if($diy->public == 2)

            {

                //diy.php?action=view&diyid={$diy->diyid}&id=$id

                $goto = "diy.php?action=list&diyid={$diy->diyid}";

                $bkmsg = '发布成功,现在转向表单列表页...';

            }

            else

            {

                $goto = !empty($cfg_cmspath) ? $cfg_cmspath : '/';

                $bkmsg = '发布成功,请等待管理员处理...';

                echo "<script>alert('提交成功!'); history.go(-1)</script>";

            }

            showmsg($bkmsg, $goto);

        }

    }