网站手机号码验证!

本文介绍了网站进行手机号码验证的三个步骤:输入手机号码并请求验证码,后台生成验证码并缓存,最后对比用户输入的验证码与缓存验证码进行验证。涉及到的技术包括可能的短信服务提供商API使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网站手机号码验证!

第一:输入手机号码,点击验证码,发送验证码。

        <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;
	}
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值