短信验证php_php实现登录短信验证

本文介绍了如何使用PHP结合第三方短信API实现登录时的短信验证功能。通过详细步骤和代码示例,阐述了从注册API平台、理解开发文档到集成短信验证功能的全过程。
摘要由CSDN通过智能技术生成

原标题:php实现登录短信验证

今天benny要跟大家说这个其实很简单,就是借用某一个平台的短信api接口实现短信验证,说简单呢,那是因为他的官网:http://www.ucpaas.com上有开发文档,它可以教会一个小白很快的运用它的接口,并开发自己的应用。这个官网还算人性化的,因为你一注册,就给了你10块钱的测试费用来尝试使用它的api,你要知道一条短信0.055元,10块钱给你拿来学习测试已经够多啦!

首先,你进入官网,注册,然后你就点击开发文档:

9c2b70673e57ff695f2889847431bbea.png

5263d1594e1b2b8c9f099ffb381b61b4.png

这里有详细的介绍你怎么用它的东西,我就不在这里bb啦,看完后我们就直接下载一个php的demo文件来试试!!

下载后,你就可以看到一个封装的类Ucpaas.class.php和一个index.php的文件:

2891ab6291b3bac7c8f4920ae5a363bd.png

8aa46e40133282bb67ccf0c3f16c81a1.png

上面的注释有详细的解释,要用到的参数啥的,你注册了账号后也就自然有了,多看几遍,有点基础的人几分钟内就可以看得懂的啦!

接着,你就开始阅读官网下面目录的内容:

a95e723d4599eac149b3f18bfb0ae78c.png

这里有详细的介绍,我就只是做一个引导吧,具体的大家去阅读哦。

最后,我把这个短信验证功能在我的项目上实现了,你可以看下我的代码截图:

640c328998adb4af757ef1befef7d5dd.png

4d32d6b7f585668be6351461a61bc8b3.png

//载入ucpass类

require('library/Db.class.php');

require_once('library/Ucpaas.class.php');

//初始化必填

$options['accountsid']='******';(这个不能给大家看哦)

$options['token']='******';(这个不能给大家看哦)

//初始化 $options必填

$ucpass = new Ucpaas($options);

//开发者账号信息查询默认为json或xml

header("Content-Type:text/html;charset=utf-8");

//短信验证码(模板短信),默认以65个汉字(同65个英文)为一条(可容纳字数受您应用名称占用字符影响),超过长度短信平台将会自动分割为多条发送。分割后的多条短信将按照具体占用条数计费。

// 验证码短信:同一个手机号1分钟内不能超过2条,24小时内不能超过8条

$appId = "****";(这个不能给大家看哦)

$to=$_POST['to'];

$templateId = "244286";

$string='';

for ($i=0; $i <4 ; $i++) {

$string.=rand(0,9);

}

$param=$string;

$db = new DB();

$sql ="select * from mr_user where username = :username";

$user = $db->row($sql,array('username' =>$to));

//用户名存在

$id=$user['id'];

if ($user){

$password=md5($param);

$update_sql = "update mr_user set password ='$password' where id='$id'";

$result_id = $db->query($update_sql);

if ($result_id){

$data=$ucpass->templateSMS($appId,$to,$templateId,$param);

$re='';

$arr = json_decode($data,true);

foreach ($arr as $key => $value) {

if ($key=='resp') {

foreach ($value as $key2 => $value2) {

if ($key2=='respCode') {

$re=$value2;

}

}

}

}

if ($re=='000000') {

echo 1;//短信已发送!

}elseif ($re=='105147') {

echo 3;//短信发送太频繁

}else{

echo 2;//号码输入有误

}

exit(0);

}

else{

echo 0;//短信发送出错!

}

}else {

$data=$ucpass->templateSMS($appId,$to,$templateId,$param);

$re='';

$arr = json_decode($data,true);

foreach ($arr as $key => $value) {

if ($key=='resp') {

foreach ($value as $key2 => $value2) {

if ($key2=='respCode') {

$re=$value2;

}

}

}

}

if ($re=='000000') {

$addtime = time();

$insert_sql = "insert into mr_user(username,password,addtime) value(:username,:password,$addtime)";

$result_id = $db->query($insert_sql,array('username' =>$to,'password'=>md5($param)));

if ($result_id){

echo 1;//短信已发送!

}else{

echo 0;//短信发送出错!

}

}elseif($re='105147'){

echo 3;//短信发送太频繁

}else{

echo 2;//号码输入有误

}

}

图|来源截图

不当你的世界只作你的肩膀

Benny

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值