今晚研究了下短信驗證碼注冊,很簡單,用的是 雲通訊的短信系統(收費的,不過有測試的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" id="tel"><br>
驗證碼:<input type="text" name="verify" id=""><span><button id="btn" type="button">免費發送驗證碼</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、結果輸出驗證碼正確
整個驗證碼驗證邏輯就這么簡單,短信驗證是要收錢的,這個有錢的公司一般都會用短信驗證,夠安全,而屌絲公司可以用郵箱驗證碼驗證,下次再寫個郵箱驗證碼驗證。