网站手机号码验证!
第一:输入手机号码,点击验证码,发送验证码。
<input type="text" name="iphone" id="iphone" placeholder="请输入您的手机号码" />
<input type="text" name="code" id="code" /><p class="getCode" id="J-code">获取验证码</p>
$('#J-code').click(function(){
var iphone = $("#iphone").val();
if(!iphone){
alert("请输入手机号!");
$('#iphone').focus();
return false;
}
if(!(/^1[3|4|5|8][0-9]\d{4,8}$/.test(iphone))){
alert("不是完整的11位手机号或者正确的手机号前七位");
$('#iphone').focus();
return false;
}
$.post("/Home/User/getCode",{iphone:$('#iphone').val()},function(data){
if(data.code == "OK"){
alert(data.code);
}else{
alert(data.code);
}
},"json");
})
第二:发送验证码。(生成验证码,并缓存)(如果是手机登录,则需验证数据库中是否有此手机号)
//发送短信
public function getCode(){
$mobile = I('post.iphone');
$code = rand(100000,999999);
session("code",$code);
$con = new AlismsController();
$data = $con->sendSms($mobile,$code);
$json['code'] = $data['Code'];
echo json_encode($json);
die();
}
第三:验证。(将用户输入的验证码和缓存中的验证码比较)
public function ajax_register(){
if(empty(I('post.iphone')) || empty(I('post.password'))){
$json['code'] = 1;
}
$user = M('user')->where(['iphone'=>I('post.iphone')])->find();
if($user){
$json['code'] = 2;
}else{
if(I('post.code') != $_SESSION['code']){
$json = 3;
}else{
$data = I('post.');
$data['date'] = date("Y-m-d H:i:s");
$data['lastlogin'] = time();
$res = M('User')->add($data);
$json['code'] = 5;
}
}
echo json_encode($json);
die();
}
AlismsController.class.php
<?php
namespace Home\Controller;
use Think\Controller;
use Aliyun\DySDKLite\SignatureHelper;
require_once "./ThinkPHP/Library/Vendor/SignatureHelper.php";
class AlismsController extends Controller {
public function sendSms($mobile,$code)
{
$params = array ();
$accessKeyId = "LTAIjnoo7rcvk1QI";
$accessKeySecret = "QDHEUymTL5VDzBQQjom65Au1aNQH9d";
$params["PhoneNumbers"] = $mobile;
$params["SignName"] = "百房网络";
$params["TemplateCode"] = "SMS_136100027";
$params['TemplateParam'] = Array (
"code" => $code
);
$params['OutId'] = "12345";
$params['SmsUpExtendCode'] = "1234567";
if(!empty($params["TemplateParam"]) && is_array($params["TemplateParam"])) {
$params["TemplateParam"] = json_encode($params["TemplateParam"]);
}
$helper = new SignatureHelper();
$content = $helper->request(
$accessKeyId,
$accessKeySecret,
"dysmsapi.aliyuncs.com",
array_merge($params, array(
"RegionId" => "cn-hangzhou",
"Action" => "SendSms",
"Version" => "2017-05-25",
))
);
return $content;
}
}