思路:1:给以个按钮,获取验证,给一个id、点击事件
2:获取手机号,用ajax传到后台
3:后台接收手机号,写一个随机函数作为验证码
4:短信发送成功后可以用cookie或者memcache(memcache更好)存放接收的验证码
5:判断验证码是否输入正确
注释:我这个做的简单就是实现一下功能,如果是业务逻辑的话,接收完手机号还要和数据库匹配判断手机号是否存在,不存在跳转到注册页面,号码存在判断验证码是否输入正确,正确跳到首页。 验证码不用入库,用memcache缓存下来(为了好写我用的cookie),然后生成的验证码与输入的验证码对比,判断是否一样
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="{:url('index/login')}" method="post">
<table>
<tr>
<td>手机号</td>
<td><input type="text" name="phone"></td>
</tr>
<tr>
<td>验证码</td>
<td>
<input type="text" name="code" style="width: 70px">
<input type="button" id="code" value="获取验证码">
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="登录"></td>
</tr>
</table>
</form>
</body>
</html>
<script src="__STATIC__/jquery.js"></script>
<script>
$("#code").click(function(){
var phone=$("[name=phone]").val();
$.ajax({
type: "POST",
url: "{:url('index/add')}",
data: {phone:phone},
success: function(msg){
if(msg == 1){
alert( '短信发送成功' );
}
}
});
})
</script>
public function add(){
if(Request::instance()->isGet()){
return view('add');
}else{
//获取手机号
$phone = $_POST['phone'];
//生成的验证码
$a = rand(1000,9999);
$b='code='.$a;
$param = urlencode($b);
$url="http://api.k780.com:88/?app=sms.send&tempid=你创建的模板ID¶m=替换参数&phone=手机号码&appkey=您申请的APPKEY&sign=您申请的SIGN&format=json";
//获取验证码 是否成功 (获取页面内容)
$a1 = file_get_contents($url);
//成功时返回的的 对象
$str =$a1;
//对象解析成PHP数组
$aa = json_decode($str,true);
if($aa['success'] == 1){
//把接到的验证码放到 cookie里
setcookie('code',$a);
return 1;
}else{
return 2;
}
}
}
public function login()
{
//接受的验证码
$code = $_POST['code'];
//cookie存的验证码
$a=$_COOKIE['code'];
//判断是否相等
if($code==$a){
$this->success('登录成功');
}
}
来源:CSDN
作者:四万i
链接:https://blog.csdn.net/qq_42780341/article/details/84870975