短信驗(yàn)證碼去除第一層圖片驗(yàn)證的方式
代碼提供者:@ 易學(xué)習(xí) (小波設(shè)計(jì))
非常感謝大佬的無私幫助~
目前系統(tǒng)的短信驗(yàn)證是需要首先進(jìn)行一次圖片驗(yàn)證~這種方式很好但是在某些場(chǎng)合不適合~因?yàn)榻?jīng)過雙重驗(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)碼未填寫'), ['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/ {你的表單名稱}.php
<?php namespace Phpcmf\Controllers;
/**
* 二次開發(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('沒有發(fā)送驗(yàn)證碼'));
} elseif ($code != $_POST['sms']) {
$this->_json(0, dr_lang('驗(yàn)證碼不正確'));
}
$this->_Home_Post();
}
}
然后就ok了~親測(cè)可用~
短信驗(yàn)證最好是能開啟關(guān)閉驗(yàn)證碼
不做效驗(yàn)有時(shí)候也不好,會(huì)被別人利用來亂發(fā)短信
短信亂發(fā)坑你小事,學(xué)習(xí)一下就行了,實(shí)際項(xiàng)目不建議這么干了
回復(fù)@易學(xué)習(xí) 嗯吶~先看一段時(shí)間效果~如果實(shí)在太多了在使用原來的方法~
回復(fù)@小黃人 18html.com 是的~不過還是先跑一段時(shí)間試試~~
有些場(chǎng)景下確實(shí)不需要圖形驗(yàn)證碼,官方注冊(cè)也支持開發(fā),但強(qiáng)制開啟了
確實(shí),需要這個(gè)東西!?。?/p>