<?php
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="http://code.jquery.com/jquery-1.11.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
var countdown=60;
function settime(obj){
//60秒倒计时
if (countdown == 0){
obj.removeAttribute("disabled");
obj.value="发送短信验证码";
countdown = 60;
return;
}else{
obj.setAttribute("disabled", true);
obj.value="重新发送(" + countdown + ")";
countdown--;
}
setTimeout(function() {
settime(obj) }
,1000)
}
$(document).ready(function() {
$("#yzmfs").click(function () {
var randomnum=Math.floor(Math.random()*(9999-1000))+1000;
//确保手机号不为空
var mobile=$("#phone").val();
if(mobile.length==0)
{
alert('请输入手机号码!');
$("#phone").focus();
return false;
}
if(mobile.length!=11)
{
alert('请输入11位手机号!');
$("#phone").focus();
return false;
}
var myreg = /^((1[3|4|5|8][0-9]{1})+\d{8})$/;
if(!myreg.test(mobile))
{
alert('请输入正确的手机号码!');
document.getElementById("phone").focus();
return false;
}
//点击发送短信验证码
$.ajax({
async : false,
type: "post",
url: "code.php", //
data: {"yzm": randomnum, 'yzmtel': $('#phone').val()},
success: function (data) {
//发送短信验证码
if(data=='Ok'){
$('#msg').val(randomnum);
}
}
});
})
})
function reg(){
var yzm=$("#yzm").val();
//alert(yzm);
if(yzm.length==0)
{
alert('请输入验证码!');
$("#yzm").focus();
return false;
}
if($("#yzm").val() != $("#msg").val()){
alert('验证码不正确!');
$("#yzm").focus();
return false;
}
return true;
}
</script>
</head>
<body>
<form action="check.php" method="post" onsubmit="return reg()">
用户名:<input type="text" id="name" name="name"/><br>
密码:<input type="password" id="pwd" name="pwd" /><br>
手机号:<input type="text" id="phone" name="phone" /><br>
<input id="msg" hidden name='msg'>
<input type="text" id="yzm" name="yzm"><input type="button" id="yzmfs" value="发送短信验证码" onclick="settime(this)" /> <br>
<input type="submit" id='register' name='register' value="注册" >
</form>
</body>
</html>
<?php
require_once 'vendor/autoload.php';
// 导入对应产品模块的client
use TencentCloud\Sms\V20210111\SmsClient;
// 导入要请求接口对应的Request类
use TencentCloud\Sms\V20210111\Models\SendSmsRequest;
use TencentCloud\Common\Exception\TencentCloudSDKException;
use TencentCloud\Common\Credential;
// 导入可选配置类
use TencentCloud\Common\Profile\ClientProfile;
use TencentCloud\Common\Profile\HttpProfile;
try {
/* 必要步骤:
* 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。
* 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。
* 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人,
* 以免泄露密钥对危及你的财产安全。
* CAM密匙查询: https://console.cloud.tencent.com/cam/capi*/
$cred = new Credential("AKIDFB6n1zXBFZduBr70RorAHR9BxUyBopHA", "UjV0GMDpPoEUMSY27tUIrBI9k4HJDWZr");
//$cred = new Credential(getenv("TENCENTCLOUD_SECRET_ID"), getenv("TENCENTCLOUD_SECRET_KEY"));
$yzm=$_POST['yzm'];
$mobile=$_POST['yzmtel'];
//var_dump($yzm);exit();
// 实例化要请求产品(以sms为例)的client对象,clientProfile是可选的
// 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量
$client = new SmsClient($cred, "ap-guangzhou");
// 实例化一个 sms 发送短信请求对象,每个接口都会对应一个request对象。
$req = new SendSmsRequest();
/* 填充请求参数,这里request对象的成员变量即对应接口的入参
* 你可以通过官网接口文档或跳转到request对象的定义处查看请求参数的定义
* 基本类型的设置:
* 帮助链接:
* 短信控制台: https://console.cloud.tencent.com/smsv2
* sms helper: https://cloud.tencent.com/document/product/382/3773 */
/* 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId,示例如1400006666 */
$req->SmsSdkAppId = "1400638888";
/* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 */
$req->SignName = "短信签名";
/* 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] */
$req->ExtendCode = "";
/* 下发手机号码,采用 E.164 标准,+[国家或地区码][手机号]
* 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号*/
$mobile="+86".$mobile;
$req->PhoneNumberSet = array($mobile);
/* 国际/港澳台短信 SenderId: 国内短信填空,默认未开通,如需开通请联系 [sms helper] */
$req->SenderId = "";
/* 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 */
$req->SessionContext = "【短信签名】您的注册验证码:{1},如非本人操作,请忽略本短信!";
/* 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 */
$req->TemplateId = "1308888";
/* 模板参数: 若无模板参数,则设置为空*/
$req->TemplateParamSet = array($yzm);
// 通过client对象调用SendSms方法发起请求。注意请求方法名与请求对象是对应的
// 返回的resp是一个SendSmsResponse类的实例,与请求对象对应
$resp = $client->SendSms($req);
echo $resp->SendStatusSet[0]->Code;
// 输出json格式的字符串回包
//print_r($resp->toJsonString());
// 也可以取出单个值。
// 您可以通过官网接口文档或跳转到response对象的定义处查看返回字段的定义
//print_r($resp->TotalCount);
}
catch(TencentCloudSDKException $e) {
echo $e;
}