实现短信验证码注册

今晚研究了下短信验证码注册,很简单,用的是  云通讯的短信系统(收费的,不过有测试的api给我们做测试)。好了,不多说,进入正题。

 

1、收到到云通讯短信系统注册账号,然后下载他们的封装好的短信api接口代码,解压,然后找到CCPRestSDK.php文件和SendTemplateSMS.php文件,将其拉到根目录文件夹里;

实现短信验证码注册

2、打开SendTemplateSMS.php文件,首先注意include_once('./CCPRestSDK.php'),千万别包含错路径了,将云通讯给的测试主账号,主账号Token,应用ID填到这三个变量中

实现短信验证码注册

 

3、创建sendMessage.html页面(此处也没做过多的安全过滤)

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Index</title>
<script type="text/javascript" src="jquery.min.js"></script>
</head>
	
<body>
	<form action="reg.php" method="post">
		手机号:<input type="text" name="tel" ><br>
		验证码:<input type="text" name="verify" >免费发送验证码</button></span><br>
		<input type="submit" name="" value="注册">	
	</form>
	<script type="text/javascript">
		$('#btn').click(function(){
			var tel = $.trim($('#tel').val());
			$.post('SendTemplateSMS.php', {'tel':tel},function(res){
				if (res) {
					alert('发送成功');
				} else {
					alert('发送失败');
				}
			});
		});
	</script>
</body>
</html>	

4、输入手机号  点击免费发送验证码  ,查看发送成功了

实现短信验证码注册

 

5、在SendTemplateSMS.php文件里已经写好了手机号然后进行处理的代码

    $tel = $_POST['tel'];
    $res = sendTemplateSMS($tel, array($verify, 2),"1");   //$verify是所包含的verify.php文件里动态生成的四位数字验证码变量,生成时已将验证码存于SESSION里 ,到提交验证码时用于验证判断
    if ($res) {
        echo '1';
    } else {
        echo '0';
    }

6、如果不出意外,手机会收到四位数字的验证码,然后输入验证码,将其提交到reg.php文件

实现短信验证码注册

7、reg.php文件进行验证码正确与否进行逻辑验证*(我这只是做实验,所以没做多少安全过滤处理)

<?php 
	session_start();

	$tel = $_POST['tel'];
	$ver = trim($_POST['verify']);

	if ( $ver == $_SESSION['verify']) {
		echo '验证码正确';
	} else {
		echo '验证码有误';
	}

 ?>

8、结果输出验证码正确

实现短信验证码注册

 

整个验证码验证逻辑就这么简单,短信验证是要收钱的,这个有钱的公司一般都会用短信验证,够安全,而屌丝公司可以用邮箱验证码验证,下次再写个邮箱验证码验证。