贵博网络帝国app设为首页收藏本站
登录 | 立即注册 切换到宽版
查看: 1471|回复: 0

[使用教程] 帝国CMS7.5验证码调用方法

[复制链接]

该用户从未签到

发表于 2018-11-24 18:06:53 | 显示全部楼层 |阅读模式
7.5的验证码要先点一下才显示的,不像7.2直接显示了,做模板时免不了要加上验证码保证网站安全。以下代码在任何模板调用验证码都可以显示且验证输入验证码的正确性。

模板HTML文件在header中加上JS引用

<script type="text/javascript" src="/e/data/js/ajax.js?guiboweb=Math.random()*100"></script>

在需要显示验证码的模板位置加上HTML

<legend>*验证码:   <span id="regshowkey"><a href="#guiboweb" title="点击显示验证码">点击显示验证码</a></span></legend>
    <input type="text" name="key" id="key" />

模板代码搞定,现在在PHP文件中做验证码验证。

$varname='checkregkey';
$postval = $ecms = strtoupper(trim($key));
$dopr = 1;
$ecms=0; $isadmin=0;
if($isadmin==1)
    {
        $pubkeytime=$public_r['hkeytime'];
        $pubkeyrnd=$public_r['hkeyrnd'];
    }
    else
    {
        $pubkeytime=$public_r['keytime'];
        $pubkeyrnd=$public_r['keyrnd'];
    }
    $r=explode(',',getcvar($varname,$ecms));
    $cktime=(int)$r[0];
    $pass=$r[1];
    $val=$r[2];
    $time=time();
    if($cktime>$time||$time-$cktime>$pubkeytime)
    {
        echo "{'guiboweb':'验证码超时 请重新输入','result':'0'}";
        exit();
    }
    if(empty($postval))
    {
        echo "{'guiboweb':'验证码错误 请重新输入','result':'0'}";
        exit();
    }
    $checkpass=md5('d!i#g?o-d-'.md5(md5($varname.'E.C#M!S^e-'.$postval).'-E?m!P.i#R-e'.$cktime).$pubkeyrnd.'P#H!o,m^e-e');
    if('dg'.$checkpass<>'dg'.$pass)
    {
        echo "{'guiboweb':'验证码错误 请重新输入','result':'0'}";
        exit();
    }

验证码的表单POST到什么样的PHP文件就放在那个文件中,现在在任何位置都可以使用官方的验证码啦


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|在线支付| 资质荣誉|小黑屋|手机版|Archiver| 贵博网络帝国app ( 湘ICP备15004884号  

GMT+8, 2020-2-22 09:38 , Processed in 0.090592 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表