thinkphp3.2写APP接口之图片验证码实现思路
来源:互联网 发布:windows访问samba 编辑:程序博客网 时间:2024/05/29 15:14
一、在写给APP图片验证码时有两种思路
1、用php原生代码写一个,这个有很多现成的代码,不再赘述;2、使用thinkphp3.2的图片验证码,这里主要讲的就是这种;
二、生成验证码
public function verifyImg() { //让APP端传递一串字符串用于校验使用 $sendVerifyName= I('get.verifyName'); //根据你定义的规则对str校验,这里忽略 //... //生成缓存名,用于保存验证码 //根据你的规则生成,比如md5加盐处理 $sendVerifyName = md5($sendVerifyName . '12345'); //实例化验证码对象 $Verify = new \Think\Verify(); //================你的验证码参数start================== $Verify->fontSize = 20; $Verify->length = 4; $Verify->codeSet = '0123456789'; $Verify->imageW = 150; $Verify->imageH = 50; $Verify->expire = 600; $Verify->fontttf = '5.ttf'; //================你的验证码参数end================== //生成验证码 $Verify->entry(); //后续处理,用于验证,这里可以封装成函数操作 //最好不要改下面的第二个和第三个参数,不然就需要修改\Think\Verify()原文件 $key = substr(md5($Verify->seKey), 5, 8); $str = substr(md5($Verify->seKey), 8, 10); $key = md5($key . $str); S($sendVerifyName, session($key), 180); }
三、校验验证码
比如说在注册时验证
public function register(){ //一些参数和逻辑处理主要使用verifyName、validity这两个参数,其他参数及校验不需要 $requestData = array(); $requestData['tel'] = I('post.tel'); $requestData['password'] = I('post.password'); $requestData['confirmPassword'] = I('post.confirmPassword'); $requestData['verifyName'] = I('post.verifyName'); $requestData['validity'] = I('post.validity'); $requestData['sign'] = I('post.sign'); foreach($requestData as $k => $v){ if(mb_strlen($v, 'utf-8') == 0){ my_json_encode(10002, '参数不能为空'); } } if(!check_sign($requestData)){ my_json_encode(10003, '验签失败'); } //根据规则得到验证码的缓存名 $sendVerifyName = md5($requestData['verifyName'] . '12345'); //=============生成加密后的验证码start============== $Verify = new \Think\Verify(); $key = substr(md5($Verify->seKey), 5, 8); $str = substr(md5($requestData['validity']), 8, 10); //这个就是加密后的验证码,用它与S($sendVerifyName)比较即可 $key = md5($key . $str); //=============生成加密后的验证码end============== //后续处理,判断缓存是否存在,不存在即验证码过期,存在则比较 //...}
阅读全文
0 0
- thinkphp3.2写APP接口之图片验证码实现思路
- Thinkphp3.2下验证码的实现
- thinkphp3.2加入验证码
- ThinkPHP3.1实现中文验证码
- thinkphp3.2 restful接口的实现
- thinkphp3.2 后台获取app前端多个图片上传及参数 的接口写法(upload()函数)
- 学习ThinkPHP3.2.2:video13,验证码图片的定制
- 在thinkphp3.2基础上封装上传图片接口
- ThinkPHP3.2 点击看不清刷新验证码
- ThinkPHP3.2 应用系统验证码
- ThinkPHP3.2.3验证码
- ThinkPHP3.2.2-验证码
- ThinkPHP3.2 验证随记
- 动态验证码实现思路
- 实现验证码的思路
- 重写IHttpHandler接口实现产生随机验证码图片
- 图片验证码破解的一般思路
- 校验图片中的文字验证码思路
- lesson5:文本编辑
- sql where 1=1和 0=1 的作用
- Spring JDBC-Spring对事务管理的支持
- 常用编程语言简介
- LINTCODE——最大正方形
- thinkphp3.2写APP接口之图片验证码实现思路
- 快速排序
- ZigBee基础实验(三)--定时器1
- 条件和排序
- 导弹选路问题
- HDU
- 听说现在流行理财产品?
- 61. Rotate List
- [python]leetcode(632). Smallest Range