聯(lián)系官方銷(xiāo)售客服
1835022288
028-61286886
短信驗(yàn)證碼去除第一層圖片驗(yàn)證的方式
代碼提供者:@ 易學(xué)習(xí) (小波設(shè)計(jì))
非常感謝大佬的無(wú)私幫助~
目前系統(tǒng)的短信驗(yàn)證是需要首先進(jìn)行一次圖片驗(yàn)證~這種方式很好但是在某些場(chǎng)合不適合~因?yàn)榻?jīng)過(guò)雙重驗(yàn)證對(duì)于用戶有些麻煩~
前端表單代碼:
<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">獲取手機(jī)驗(yàn)證碼</button>
將提交url轉(zhuǎn)化成上面的樣式 然后刪除圖片驗(yàn)證碼的代碼
控制器文件建立位置:dayrui/app/form/controllers/Api.php
控制器代碼:
<?php namespace Phpcmf\Controllers; // 用戶api class Api extends \Phpcmf\Common { /** * 發(fā)送驗(yàn)證碼 */ public function send_code() { $phone = dr_safe_replace(\Phpcmf\Service::L('input')->get('id')); if (!$phone) { $this->_json(0, dr_lang('手機(jī)號(hào)碼未填寫(xiě)'), ['field' => 'phone']); } elseif (!\Phpcmf\Service::L('Form')->check_phone($phone)) { $this->_json(0, dr_lang('手機(jī)號(hào)碼格式不正確'), ['field' => 'phone']); } if (\Phpcmf\Service::L('Form')->get_mobile_code($phone)) { // 驗(yàn)證操作間隔 $this->_json(1, dr_lang('已經(jīng)發(fā)送稍后再試')); } $code = rand(100000, 999999); $rt = \Phpcmf\Service::M('member')->sendsms_code($phone, $code); if (!$rt['code']) { $this->_json(0, dr_lang('發(fā)送失敗')); } \Phpcmf\Service::L('Form')->set_mobile_code($phone, $code); $this->_json(1, dr_lang('驗(yàn)證碼發(fā)送成功')); } }
表單控制器修改:dayrui/app/form/controllers/ {你的表單名稱(chēng)}.php
<?php namespace Phpcmf\Controllers; /** * 二次開(kāi)發(fā)時(shí)可以修改本文件,不影響升級(jí)覆蓋 */ 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('沒(méi)有發(fā)送驗(yàn)證碼')); } elseif ($code != $_POST['sms']) { $this->_json(0, dr_lang('驗(yàn)證碼不正確')); } $this->_Home_Post(); } } 然后就ok了~親測(cè)可用~
短信驗(yàn)證最好是能開(kāi)啟關(guān)閉驗(yàn)證碼
不做效驗(yàn)有時(shí)候也不好,會(huì)被別人利用來(lái)亂發(fā)短信
短信亂發(fā)坑你小事,學(xué)習(xí)一下就行了,實(shí)際項(xiàng)目不建議這么干了
回復(fù)@易學(xué)習(xí) 嗯吶~先看一段時(shí)間效果~如果實(shí)在太多了在使用原來(lái)的方法~
回復(fù)@小黃人 18html.com 是的~不過(guò)還是先跑一段時(shí)間試試~~
有些場(chǎng)景下確實(shí)不需要圖形驗(yàn)證碼,官方注冊(cè)也支持開(kāi)發(fā),但強(qiáng)制開(kāi)啟了
確實(shí),需要這個(gè)東西?。?!