业务经理

微信扫描以上二维码

028-61286886

技术咨询

短信验证码去除第一层图片验证的方式

迅睿框架 更新 2020-09-26 19:53:11 123

短信验证码去除第一层图片验证的方式

代码提供者:@ 易学习 (小波设计)

非常感谢大佬的无私帮助~

目前系统的短信验证是需要首先进行一次图片验证~这种方式很好但是在某些场合不适合~因为经过双重验证对于用户有些麻烦~

前端表单代码:

<button class="btn blue" onclick="dr_ajax_url('/index.php?s=form&c=api&m=send_code&&code='+$('#dr_code').val()+'&id='+$('#dr_dianhua').val())" type="button">获取手机验证码</button>

将提交url转化成上面的样式 然后删除图片验证码的代码

控制器文件建立位置:dayrui/app/form/controllers/Api.php

控制器代码:

<?php namespace Phpcmf\Controllers;
// 用户api
class Api extends \Phpcmf\Common
{
    /**
     * 发送验证码
     */
    public function send_code() {
        $phone = dr_safe_replace(\Phpcmf\Service::L('input')->get('id'));
        if (!$phone) {
            $this->_json(0, dr_lang('手机号码未填写'), ['field' => 'phone']);
        } elseif (!\Phpcmf\Service::L('Form')->check_phone($phone)) {
            $this->_json(0, dr_lang('手机号码格式不正确'), ['field' => 'phone']);
        }
if (\Phpcmf\Service::L('Form')->get_mobile_code($phone)) {
// 验证操作间隔
            $this->_json(1, dr_lang('已经发送稍后再试'));
        }
        $code = rand(100000, 999999);
        $rt = \Phpcmf\Service::M('member')->sendsms_code($phone, $code);
        if (!$rt['code']) {
            $this->_json(0, dr_lang('发送失败'));
        }
\Phpcmf\Service::L('Form')->set_mobile_code($phone, $code);
        $this->_json(1, dr_lang('验证码发送成功'));
    }
}

表单控制器修改:dayrui/app/form/controllers/ {你的表单名称}.php

<?php namespace Phpcmf\Controllers;
/**
 * 二次开发时可以修改本文件,不影响升级覆盖
 */
class Xfbd extends \Phpcmf\Home\Form
{
    public function index() {
        $this->_Home_List();
    }
    public function show() {
        $this->_Home_Show();
    }
    public function post() {
        $code = \Phpcmf\Service::L('Form')->get_mobile_code($dianhua);
if (!$code) {
$this->_json(0, dr_lang('没有发送验证码'));
} elseif ($code != $_POST['sms']) {
$this->_json(0, dr_lang('验证码不正确'));
}
        $this->_Home_Post();
    }
}

然后就ok了~亲测可用~


方案

  • 小黄人 18html.com #1 · 2020-08-26 13:50:51
    短信验证最好是能开启关闭验证码
    不做效验有时候也不好,会被别人利用来乱发短信
  • 易学习 #2 · 2020-08-26 14:04:20
    短信乱发坑你小事,学习一下就行了,实际项目不建议这么干了
  • 123 #3 · 2020-08-26 14:05:35
    易学习 嗯呐~先看一段时间效果~如果实在太多了在使用原来的方法~
  • 123 #4 · 2020-08-26 14:06:08
    小黄人 18html.com 是的~不过还是先跑一段时间试试~~
  • 帝云网络 #5 · 2020-09-01 12:36:54
    有些场景下确实不需要图形验证码,官方注册也支持开发,但强制开启了
    image
  • 流浪的乞丐 #6 · 2020-09-26 19:53:11
    确实,需要这个东西!!!

迅睿系统漏洞

站群分站系统
站群分站系统(2026-10-15)
子站域名新增llms.txt访问
GEO系统
GEO系统(2026-10-14)
修复下载zip空白地址问题 修复流量复刻和任务队列错误
GeoSeo收录宝
GeoSeo收录宝(2026-10-14)
新增 站长工具箱 前端首页自动调用meta 数据
滑块验证码 Gocaptcha
滑块验证码 Gocaptcha(2026-10-13)
基于开源项目 go-captcha 的行为验证码插件,滑动拼图、区域...
GeoSeo工具箱
GeoSeo工具箱(2026-10-13)
优化巡检任务
GeoSeo排名助手
GeoSeo排名助手(2026-10-11)
加入大模型自定义
SEO聚合关键字
SEO聚合关键字(2026-10-11)
优化关键字列表页最多支持1万篇文章,过多会导致服务器扛不住;
CMS内容同步复制
CMS内容同步复制(2026-10-10)
增加时间是否更新的开关