# 帝国cms 8.0短信插件添加图形验证码

*Published:* 2026-04-09
*Author:* 飞翔001

帝国cms8.0版本，虽然升级了很多功能，但细节的雕琢方面，已经不如前期。8.0短信登录插件，开启后台的短信验证码后，仍需要手动配置。

1、开启短信验证码

```
后台开启短信验证码登录
```

2、前端添加验证码代码

```
/e/extenddef/esms/template/BindPhLoginTemp.php
```

手机验证码上方，添加图形验证码

```
<?php
    if($public_r['loginkey_ok'])
    {
    ?>
    <tr bgcolor="#FFFFFF"> 
        <td width="23%" >图形验证：</td>
        <td width="77%" >
            <input name="key" type="text" id="key" size="6" class="form-control" placeholder="图形验证码">
            <label><i class="iconfont icon-securityCode-b"></i></label>
            <span id="loginshowkey"><a href="javascript:void(0);" onclick="edoshowkey('loginshowkey','login','<?=$public_r['newsurl']?>');" title="点击显示验证码">点击显示验证码</a></span>
        </td>
    </tr>
    <?php
    }	
    ?>
```

3、发送按钮添加key

```
/e/extenddef/esms/ecmsfun.php
找到 &prtype='+eprtype
```

做出如下调整

```
document.getElementById('esendphmpage<?=$vpre?>').src='<?=$public_r['newsurl']?>e/extenddef/esms/doaction.php?enews=DoSendPhm&smtype='+emtype+'&sphno='+ephno+'&stime='+timestrjs+'&<?=$formkey_varname?>na='+eformkey+'&prtype='+eprtype+'&key='+encodeURIComponent(document.getElementById('key')?document.getElementById('key').value:'');
```

4、添加验证逻辑，找到

```
if(!echphno($phno))
    {
        echo'没有收到号码';
        exit();
    }
```

在下面，添加

```
//图形验证码
    $keyvname='checkloginkey';
    if($public_r['loginkey_ok'])
    {
        ecmsCheckShowKey($keyvname,$key,$dopr);
    }
```

至此，就算可以了。