1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > PHP 短信验证码:发送及验证

PHP 短信验证码:发送及验证

时间:2019-11-02 06:46:49

相关推荐

PHP 短信验证码:发送及验证

一、验证码发送及验证二、验证码存放的格式三、自定义Redis操作类四、使用阿里云短信服务发送短信

一、验证码发送及验证

//startpublic function test() {//模拟短信发送self::sendSmsCode(12345678987);self::sendSmsCode(12345678989);}/*** 验证码发送* @param $tel 发送的手机号* @param int $expire 验证码有效时间:单位 s(秒)* @return mixed*/public function sendSmsCode($tel, $expire = 120) {$code = '';self::getCode($code); //获取验证码TestRedis::sAdd($tel, $code); //增加redis缓存TestRedis::expire($tel, $expire); //给该缓存增加过期时间$aliService = new AliService();$res = $aliService->sendSmsCode($tel, $code); //阿里云短信服务:发送短信return $res;}/*** 验证码校验* @param $tel 手机号* @param $code 验证码* @return bool 是否校验成功*/public function checkSmsCode($tel, $code) {$bool = TestRedis::sIsMembers($tel, $code); //该redis缓存是否存在if ($bool) {TestRedis::sRem($tel, $code); //如果存在,则清空缓存}return $bool;}/*** 生成$number位数的验证码* @param $code 生成的验证码* @param int $number 验证码的位数*/public function getCode(&$code, $number = 4) {for($count = 0; $count < $number; $count++) {$code .= mt_rand(0, 9); //取值范围 [0, 9]}}

二、验证码存放的格式

三、自定义Redis操作类

<?phpnamespace app\index\controller;//自定义一个redis操作类class TestRedis {public $redis;public function __construct() {$this->redis = self::getRedisConn();}public static function getRedisConn() {try {$redis = new \Redis(); // 直接用自己安装的Redis扩展$connect = $redis->connect('127.0.0.1', '6379'); // 主机、端口号$password = ''; //密码$authConnect = true;if (!empty($password)) {$authConnect = $redis->auth($password);}$redis->select(3); // 存放的数据库索引IDif (!$connect || !$authConnect) {// redis连接失败时,只返回false,不会抛出异常throw new BaseException('redis连接异常请检查配置!');}return $redis;} catch (\Exception $e) {throw $e;}}//设置 key 的过期时间,key 过期后将不再可用。单位以秒计。public static function expire($key,$time) {self::getRedisConn()->expire($key, $time);}//向集合添加一个或多个成员public static function sAdd($key,$value) {return self::getRedisConn()->sAdd($key,$value);}//移除集合中一个或多个成员public static function sRem($key,$value) {return self::getRedisConn()->sRem($key,$value);}//返回集合中的所有成员public static function sMembers($key) {return self::getRedisConn()->sMembers($key);}//判断成员元素是否是集合的成员。public static function sIsMembers($key, $value) {return self::getRedisConn()->sIsMember($key, $value);}}

四、使用阿里云短信服务发送短信

PHP 调用阿里云短信服务API发送短信

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。