php发验证码
2021/10/28 14:09:43
本文主要是介绍php发验证码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
php实现发送验证码功能的方法:1、创建好HTML和js文件;2、创建“Msm.php”文件,内容为“public function sendmsm(){...}”;3、通过CURL发送HTTP请求即可。
本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑
php怎么实现发送验证码的功能?
PHP实现发送短信验证码:
一、html代码
手机号码:
手机号码
验证码:
短信验证码
获取验证码
二、js代码
/**
* 发送验证码
* @return {[type]} [description]
*/
function get_svg() {
var phone = $("input[name='telephone']").val();
if (!(/^1[34578]\d{9}$/.test(phone))) {
layer.msg("请正确输入手机号!");
return false;
}
var url = "/msm/sendmsm/phone/" + phone;
$.get(url, function (resdata) {
console.log(resdata);
layer.msg(resdata.data);
if (resdata.type == 1) {
$(".code_btn").attr('onclick', "return false;");
listion_sendmsm();
}
})
return false;
}
function listion_sendmsm() {
var time = 61;
setTime = setInterval(function () {
if (time <= 1) {
clearInterval(setTime);
$(".code_btn").text("再发一次");
$(".code_btn").attr('onclick', "return get_svg();");
return;
}
time--;
$(".code_btn").text(time + "s");
}, 1000);
}
三、PHP代码实现
Msm.php
/**
* 发送短信
* @author
* @return [type] [description]
*/
public function sendmsm()
{
$phone = input('phone');
if(!$phone){
return WPreturn('请输入手机号码!',-1);
}
$code = rand(1000,9999);
$_SESSION['code'] = $code;
$res = sendmessage($code ,$phone);
if($res){
return WPreturn('发送成功',1);
}else{
return WPreturn('发送验证码失败!',-1);
}
}
/* *
* 类名:ChuanglanSmsApi
* 功能:创蓝短信接口请求类
* 详细:构造创蓝短信接口请求,获取远程HTTP数据
* 说明:
* 以下代码只是样例代码,使用第三方创蓝发送短信接口。
* 该代码仅供学习,只是提供一个参考。
*/
public function sendmessage($code, $telephone)
{
$conf = getconf('');
if(!$code){
return false;
}
if(!$telephone){
return false;
}
$content = "您的验证码是:{$code},如非本人操作,请忽略此短信。";
//创蓝接口参数
$postArr = array (
'account' => $conf['msm_appkey'],
'password' => $conf['msm_secretkey'],
'msg' => urlencode($content),
'phone' => $telephone,
'report' => true
);
$result = $this->curlPost("http://smssh1.253.com/msg/send/json", $postArr);
$json = json_decode($result);
if($json -> code != 0){
return false;
}else{
return true;
}
}
/**
* 通过CURL发送HTTP请求
* @param string $url //请求URL
* @param array $postFields //请求参数
* @return mixed
*
*/
private function curlPost($url,$postFields){
$postFields = json_encode($postFields);
$ch = curl_init ();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8' //json版本需要填写 Content-Type: application/json;
)
);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_POST, 1 );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $postFields);
curl_setopt( $ch, CURLOPT_TIMEOUT,60);
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0);
$ret = curl_exec ( $ch );
if (false == $ret) {
$result = curl_error( $ch);
} else {
$rsp = curl_getinfo( $ch, CURLINFO_HTTP_CODE);
if (200 != $rsp) {
$result = "请求状态 ". $rsp . " " . curl_error($ch);
} else {
$result = $ret;
}
}
curl_close ( $ch );
return $result;
}
这篇关于php发验证码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享