TP5 短信验证码

短信验证码 我用的是 短信宝的  网址:http://www.smsbao.com

注册账号后购买短信次数,把账号密码存在单独的数据库里面,

username对应短信宝账号。password对应密码 加密方式:MD5, text是发送短信的内容。

html页面:

因为我这边账号就是手机号,所以没有输入手机号的文本框

点击触发控制器里面的代码:

$statusStr = array(  
        "0" => "短信发送成功",  
        "-1" => "参数不全",  
        "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",  
        "30" => "密码错误",  
        "40" => "账号不存在",  
        "41" => "余额不足",  
        "42" => "帐户已过期",  
        "43" => "IP地址限制",  
        "50" => "内容含有敏感词"  
        );  
        
        // 密码字符集,生成随机6位数验证码
        $chars = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');  
        // 在 $chars 中随机取 $length 个数组元素键名  
        $keys = array_rand($chars, 6);   
        $password = '';  
        for($i = 0; $i < 6; $i++)  
        {  
            // 将 $length 个数组元素连接成字符串  
            $password .= $chars[$keys[$i]];  
        }  
        
        $phone = input('post.phone');//要发送短信的手机号码
        $sms   = Db::name('smscode')->find(array('id'=>'1'));//查询数据库里面储存的验证码信息
        $smsapi = "http://api.smsbao.com/";
        $user = $sms['username']; //短信平台帐号
        $pass = $sms['password']; //短信平台密码
        
        Session::set('smscode',$password);//将生成的随机验证码 储存在Session里面
        $content = str_replace("000000",$password,$sms['text']);//将随机验证码替换掉数据库里面发送            内容的000000,发送的短信内容
        $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
        $result =file_get_contents($sendurl) ;//发送之后的返回值
        if($result=='0')  
        {  
            //输出,短信发送成功  
            echo $statusStr[$result];    
            //此时可以更新发送状态  
        }else{  
            //输出  短信发送失败原因  
            echo $statusStr[$result];  
        }  

猜你喜欢

转载自my.oschina.net/u/3794433/blog/1822745
今日推荐