登录手机短信验证码(tp5写的)

思路:1:给以个按钮,获取验证,给一个id、点击事件

           2:获取手机号,用ajax传到后台

           3:后台接收手机号,写一个随机函数作为验证码

           4:短信发送成功后可以用cookie或者memcache(memcache更好)存放接收的验证码

           5:判断验证码是否输入正确 

注释:我这个做的简单就是实现一下功能,如果是业务逻辑的话,接收完手机号还要和数据库匹配判断手机号是否存在,不存在跳转到注册页面,号码存在判断验证码是否输入正确,正确跳到首页。            验证码不用入库,用memcache缓存下来(为了好写我用的cookie),然后生成的验证码与输入的验证码对比,判断是否一样

调用短信接口的网址:http://www.k780.com/api/sms.send        

<!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&param=替换参数&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('登录成功');
        }
    }

猜你喜欢

转载自blog.csdn.net/baiyawen1/article/details/83116204
今日推荐