API服务端实现图片验证码

  1. <?php  
  2. namespace V3\Controller;  
  3. use Think\Controller;  
  4. use V3\Param\Param;  
  5. use V3\Status\Status;  
  6. use V3\Status\Success;  
  7. /** 
  8.  * 公共接口 
  9.  * Class PublicController 
  10.  * @package Home\Controller 
  11.  * @date 2015-11-24 
  12.  */  
  13. class PublicController extends BaseController {  
  14.   
  15.     /** 
  16.      * 获取验证码 
  17.      */  
  18.     public function verifyCode(){  
  19.         //获取session_id  
  20.         $session_id = MD5(uniqid());  
  21.   
  22.         $param = array();  
  23.         $param['vcode_url'] = C( 'API_HOST' ) . '/public/vcode?session_id='.$session_id;  
  24.         $param['unique_id'] = $session_id;  
  25.   
  26.         //返回成功  
  27.         $this->success($param);  
  28.     }  
  29.   
  30.     /** 
  31.      * 验证图片验证码 
  32.      */  
  33.     public function checkVerifyCode(){  
  34.   
  35.         //获取 用户验证码 值  
  36.         ifempty$this->_data['image_code'] ) ) {  
  37.             $this->failure( Param::VCODE_IS_NULL , Param::VCODE_IS_NULL_MSG);  
  38.         }else{  
  39.             $image_code = $this->_data['image_code'];  
  40.         }  
  41.         //获取 验证码标识 值  
  42.         $unique_id = $this->_data['unique_id'];  
  43.   
  44.         //页面显示验证码部分  
  45.         $Verify = new \Think\Verify();  
  46.         $flag = $Verify->check($image_code$unique_id);  
  47.   
  48.         if($flag === true){  
  49.             $this->success( array() );  
  50.         }else{  
  51.             $this->failure( Status::VERIFY_CODE_FAILED , Status::VERIFY_CODE_FAILED_MSG );  
  52.         }  
  53.     }  
  54.   
  55.     /** 
  56.      * 显示图片验证码 
  57.      */  
  58.     public function vcode(){  
  59.   
  60.         //获取session_id值  
  61.         $session_id = $this -> _data['session_id'];  
  62.   
  63.         $preg = "/^[a-zA-Z0-9-,]+$/";  
  64.         if(preg_match($preg,$session_id)===false||preg_match($preg,$session_id)==0){  
  65.             $this->fail();  
  66.         }  
  67.   
  68.         //验证码配置参数  
  69.         $config = array(  
  70.             'codeSet'   =>  '0123456789',   // 验证码字符集合  
  71.             'useNoise'  =>  false,          // 是否添加杂点  
  72.             'fontSize'  =>  10,             // 验证码字体大小(px)  
  73.             'imageH'    =>  31,             // 验证码图片高度  
  74.             'imageW'    =>  86,             // 验证码图片宽度  
  75.             'length'    =>  5,              // 验证码位数  
  76.         );  
  77.   
  78.         //页面显示验证码部分  
  79.         $Verify = new \Think\Verify($config);  
  80.   
  81.         if(empty($session_id)){  
  82.             $Verify->entry( );  
  83.         }else{  
  84.             $Verify->entry($session_id);  
  85.         }  
  86.     }  
  87.   
  88.   
  89.     /** 
  90.      * 测试H5与APP交互 
  91.      */  
  92.     public function h5test(){  
  93.         $this -> display('/Public/H5');  
  94.     }  
  95. }  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值