广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php手机验证码实现的方法
  • 568
分享到

php手机验证码实现的方法

2023-06-07 22:06:21 568人浏览 独家记忆
摘要

这篇文章主要介绍“PHP手机验证码实现的方法”,在日常操作中,相信很多人在php手机验证码实现的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php手机验证码实现的方法”的疑惑有所帮助!接下来,请跟着小编

这篇文章主要介绍“PHP手机验证码实现的方法”,在日常操作中,相信很多人在php手机验证码实现的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php手机验证码实现的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

php手机验证码的实现方法:首先注册云片以及开发信息认证,并进行模板设置;然后在“easysms.php”文件内添加“'default'=>[]”等内容;接着获取云片的api_KEY;最后通过控制器代码获取验证码即可。

php手机验证码实现的方法

本文操作环境:windows7系统、PHP7.1、Dell G3电脑。

PHP手机短信验证码实现流程详解

本人在自己博客(Laravel)的注册部分 使用手机号注册,需要发送短信验证码。

使用云片的短信服务提供商,当然具体短信服务提供商大家可以自由选择。

1、实现流程

输入手机号,点击获取验证码
提交正确的短信验证码后,注册完成

2、实现思路图

php手机验证码实现的方法

3、注册 云片,以及开发信息认证,模板设置,这里就不详细展开了【】

4、安装 easy-sms,easy-sms 是安正超写的一个短信发送组件,利用这个组件,我们可以快速的实现短信发送功能。

composer require "overtrue/easy-sms"//新建配置文件touch config/easysms.php

然后在 easysms.php 文件内 添加以下内容:

 <?php  return [    'timeout'=>5.0,    'default'=>[      // 网关调用策略,默认:顺序调用      'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,      // 默认可用的发送网关      'gateways' => [        'yunpian',      ],    ],    // 可用的网关配置    'gateways' => [      'errorlog' => [        'file' => '/tmp/easy-sms.log',      ],      'yunpian' => [        'api_key' => env('YUNPIAN_API_KEY'),      ],    ],];

然后创建一个 ServiceProvider

php artisan make:provider EasySmsServiceProvider

修改文件

app/providers/EasySmsServiceProvider.php

<?phpnamespace App\Providers;use Illuminate\Support\ServiceProvider;use Overtrue\EasySms\EasySms;class EasySmsServiceProvider extends ServiceProvider{    public function boot()  {    //  }    public function reGISter()  {    $this->app->singleton(EasySms::class,function ($app){      return new EasySms(config('easysms'));    });    $this->app->alias(EasySms::class,'easysms');  }}

最后 打开config/app.php 在 providers 中增加 App\Providers\EasySmsServiceProvider::class,

获取云片的API_KEY

在.env中配置 YUNPIAN_API_KEY,注意下面需要替换为你自己的 key

控制器代码 获取验证码(将code 以及key存入缓存)

public function getVerificationCode($request)  {    if(FALSE === $this->validateApiRequest($request->all(),        ['mobile' => 'required|regex:/^1[34578]\d{9}$/|unique:users'],[          'mobile.required'=>'请输入手机号',          'mobile.regex'=>'手机号格式不正确',          'mobile.unique'=>'手机号已存在'        ])){      return false;    }    $mobile = trim($request->get('mobile'));    $code = str_pad(random_int(1,9999),4,0,STR_PAD_LEFT);    try{       $easySms->send($mobile,        ['content'=>"【UKNOW】您的验证码是{$code}。如非本人操作,请忽略本短信"]       );    }catch(\GuzzleHttp\Exception\ClientException $exception){      $response = $exception->getResponse();      $result =JSON_decode($response->getBody()->getContents(),true);      $this->setMsg($result['msg']?? '短信发送异常');      return false;    }    $key = 'verificationCode'.str_random(15);    $expiredAt = now()->addMinutes(1);    Cache::put($key,['mobile'=>$mobile,'code'=>$code],$expiredAt);    return [      'verification_key'=>$key,      'expiredAt'=>$expiredAt->toDateTimeString(),      'verification_code'=>$code      ];}

对比验证码

public function userStore($mobile, $verification_key,$code,$passWord,$password_confirmation) {  $params = [   'mobile'=>$mobile,   'verification_key'=>$verification_key,   'code'=>$code,   'password'=>$password,   'password_confirmation'=>$password_confirmation  ];  //参数判断  if (   FALSE === $this->validateApiRequest($params, [    'mobile' => 'required|regex:/^1[34578]\d{9}$/|unique:users',    'code' => 'required',    'verification_key'=>'required',    'password'  => 'required|min:6|confirmed',    'password_confirmation' => 'required',   ], [    'mobile.required' => '请输入手机号',    'mobile.regex' => '手机号格式不正确',    'mobile.unique' => '手机号已存在',    'code.required' => '请输入短信验证码',    'password.required' => '请输入密码',    'password.min'   => '密码不得小于6位',    'password.confirmed' => '密码前后不一致',    'password_confirmation.required'=>'请再次输入密码',    'verification_key.required'=>'请输入短信验证码'   ])  ) {   return false;  }  $verifyData = Cache::get($verification_key);  if( !$verifyData){   $this->setMsg('验证码已失效');   return false;  }  if(!hash_equals($code,(string)$verifyData['code'])){   $this->setMsg('验证码错误');   return false;  }  Cache::forget($verification_key);  $user = User::create([   'mobile'=>$mobile,   'password'=>bcrypt($password)  ]);  if(!$user){   $this->setMsg('注册失败');   return false;  }  return true;}

以上流程就是手机验证码基本步骤。

到此,关于“php手机验证码实现的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: php手机验证码实现的方法

本文链接: https://www.lsjlt.com/news/250370.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php手机验证码实现的方法
    这篇文章主要介绍“php手机验证码实现的方法”,在日常操作中,相信很多人在php手机验证码实现的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php手机验证码实现的方法”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-07
  • 验证手机号码的JS方法分享
    第一个:复制代码 代码如下:function Checkreg() { //验证电话号码手机号码,包含153,159号段 if (document.form.phone.value=...
    99+
    2022-11-15
    验证 手机号码 js
  • redis 手机验证码实现示例
    本文主要介绍了redis 手机验证码实现示例,分享给大家,具体如下: public class PhoneCode { public static void main...
    99+
    2022-11-12
  • java手机验证码如何实现
    要实现Java手机验证码功能,你可以使用短信平台的API来发送短信验证码。以下是一个简单的示例:1. 首先,你需要在短信平台上注册一...
    99+
    2023-09-04
    java
  • vue实现手机验证码登录
    本文实例为大家分享了vue实现手机验证码登录的具体代码,供大家参考,具体内容如下 验证码 <template> <div> <el-ma...
    99+
    2022-11-12
  • react怎么实现手机验证码
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react怎么实现手机验证码?React结合 antd 实现手机或者邮箱获取验证码60秒倒计时我这边是使用了antd button 和input 组件,若...
    99+
    2023-05-14
    验证码 React
  • react如何实现手机验证码
    今天小编给大家分享一下react如何实现手机验证码的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。react实现手机验证码的方...
    99+
    2023-07-04
  • vue怎么实现手机验证码登录
    这篇文章主要介绍“vue怎么实现手机验证码登录”,在日常操作中,相信很多人在vue怎么实现手机验证码登录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么实现手机验证码登录”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-25
  • 微信小程序获取手机验证码的方法
    本文实例为大家分享了微信小程序获取手机验证码的具体代码,供大家参考,具体内容如下 完成手机验证码的功能: (1)效果图如下:  (开始发送验证码)   (重新...
    99+
    2022-11-13
  • PHP验证码的调用方法
    这篇文章主要介绍“PHP验证码的调用方法”,在日常操作中,相信很多人在PHP验证码的调用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP验证码的调用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-17
  • Android实现验证码登录的方法
    这篇文章主要介绍了Android实现验证码登录的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。结果展示1.导包1在项目的gradle中导入maven {&nbs...
    99+
    2023-06-14
  • AngularJs如何实现最新验证手机号码
    这篇文章给大家分享的是有关AngularJs如何实现最新验证手机号码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实例如下:感谢各位的阅读!关于“AngularJs如何实现最新验证手机号码”这篇文章就分享到这里了...
    99+
    2022-10-19
  • 微信小程序实现手机号码验证
    本文实例为大家分享了微信小程序实现手机号码验证的具体代码,供大家参考,具体内容如下 wxml <form bindsubmit='formSubmit'>   <v...
    99+
    2022-11-13
  • uniapp手机验证码输入框如何实现
    本篇内容主要讲解“uniapp手机验证码输入框如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“uniapp手机验证码输入框如何实现”吧!如键盘被隐藏,可直接点击蓝框弹出键盘,蓝框就相当于i...
    99+
    2023-07-05
  • 小程序获取手机验证码倒计时的方法
    本文实例为大家分享了小程序获取手机验证码倒计时的具体代码,供大家参考,具体内容如下 test: .wxss .bind_input{ width: 450rpx; height: 8...
    99+
    2022-11-13
    小程序手机验证码 小程序获取验证码 小程序验证码倒计时
  • php后台验证码加密方法怎么实现
    在 web 开发中,验证码(CAPTCHA)是一种用于验证用户操作合法性的工具。例如,在提交表单时,服务器可以生成一张验证码图片,在用户正确输入验证码后再处理表单数据,这样可以防止机器自动提交表单,保护网站数据的安全性。在 PHP 后台开发...
    99+
    2023-05-14
  • php后台验证码加密方法如何实现
    这篇文章主要介绍“php后台验证码加密方法如何实现”,在日常操作中,相信很多人在php后台验证码加密方法如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php后台验证码加密方法如何实现”的疑惑有所帮助!...
    99+
    2023-07-05
  • vue+element实现手机号验证码注册的示例
    很全的PC端手机端适配!一个项目多个域名我试了代理跨域本地运行可以打包上传不行,然后就用全地址,后端哪里要设置域名白名单!直接上图和完整代码!觉得可以就点个赞吧,谢谢! ...
    99+
    2022-11-13
  • js如何实现手机发送验证码功能
    这篇文章将为大家详细讲解有关js如何实现手机发送验证码功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:代码如下:<!DOCTYPE html&g...
    99+
    2022-10-19
  • 微信小程序实现手机验证码登录
    我们的微信小程序里面,手机验证码登录已经成为不可缺少的一部门,为此,我写的这个手机验证码登录,这里我结合thinkphp6+微信小程序实现 首先我们进入小程序页面: wxml页面: ...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作