请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

查看: 29882|回复: 45

SpeedPHP验证码扩展类

  [复制链接]
发表于 2011-2-11 15:39:10 | 显示全部楼层 |阅读模式
此验证码扩展类为标准扩展形式,将两文件放于SpeedPHP/Extensions之下即可。

验证码通过spConfig.php进行设置,样例如下:

  1. 'ext' => array(
  2. 'spVerifyCode' => array( //验证码扩展
  3.         'width' => 60, //验证码宽度
  4.         'height' => 20, //验证码高度
  5.         'length' => 4, //验证码字符长度
  6.         'bgcolor' => '#FFFFFF', //背景色
  7.         'noisenum' => 50, //图像噪点数量
  8.         'fontsize' => 22, //字体大小
  9.         'fontfile' => 'font.ttf', //字体文件
  10.         'format' => 'gif', //验证码输出图片格式
  11. ),
  12. ),
复制代码


生成验证码可以在控制器类中使用如下代码:



  1. function _vcode() {
  2.         $vcode = spClass('spVerifyCode');
  3.         $vcode->display();
  4. }
复制代码



验证验证码的代码示例如下:



  1. function _vcode_check() {
  2.         $vcode = spClass('spVerifyCode');
  3.         if($vcode->verify($this->spArgs('verifycode'))) {
  4.                 //通过验证
  5.         }else{
  6.                 //没有通过验证
  7.         }
  8. }
复制代码




另外verify方法还支持第二个参数,值为TRUE/FALSE, 用来决定是否从SESSION中清空本次验证的验证码值

下载:
spVerifyCode.zip (67.3 KB, 下载次数: 998)
发表于 2013-4-25 23:15:34 | 显示全部楼层
报告一个绕过验证的B U G,大家注意下。见图。

1.png

TO Jake,
能否把这个回复直接置顶到主题帖中,以便让更多的朋友可以直接看到这个问题。谢谢!
另外,为什么这样也会说有不良内容啊!!
发表于 2013-4-26 09:01:43 | 显示全部楼层
coolhpy 发表于 2013-4-25 23:15
报告一个绕过验证的B U G,大家注意下。见图。

呵呵,其实不算bug,验证码类是检验验证码是否正确的,

而空值检查,这是一开始要做的,不仅是前端JS要判断验证码是否空值,后端提交后也必须要验证是否空值,之后才开始做验证码的检查。

简单说,必填项要首先做检查,然后再到特殊检查(比如说验证码,匹配等)。建议必填项的检查使用spVerifier进行。

PS:原来回复可以顶置的哦,没用过呢。
发表于 2011-2-11 16:16:47 | 显示全部楼层
很好,下来先试试,感谢楼主
发表于 2011-2-12 10:24:47 | 显示全部楼层
跟进jake的马甲中~
发表于 2011-3-10 17:27:44 | 显示全部楼层
跟进,楼主是个高手。
发表于 2011-3-14 10:32:59 | 显示全部楼层
学习了
发表于 2011-7-2 00:00:07 | 显示全部楼层
验证码通过spConfig.php进行设置

但是我在spConfig.php里面加了以上的设置后,程序还依然按照程序内部的public变量来进行运作,这个该怎么处理?
发表于 2011-7-2 03:49:20 | 显示全部楼层
回复 6# 虞飞


或许再看看spConfig的设置,楼主的介绍其实完整来说是这样

  1. 'ext' => array(
  2. 'spVerifyCode' => array( //验证码扩展
  3.         'width' => 60, //验证码宽度
  4.         'height' => 20, //验证码高度
  5.         'length' => 4, //验证码字符长度
  6.         'bgcolor' => '#FFFFFF', //背景色
  7.         'noisenum' => 50, //图像噪点数量
  8.         'fontsize' => 22, //字体大小
  9.         'fontfile' => 'font.ttf', //字体文件
  10.         'format' => 'gif', //验证码输出图片格式
  11. ),
  12. ),
复制代码

这里也帮楼主改了一下帖子,这样会比较明确一些
发表于 2011-7-2 04:05:18 | 显示全部楼层
感谢jake大大,果然灵验了,哈哈

呃,这个验证码给力啊:办套
发表于 2011-7-6 22:47:24 | 显示全部楼层
请教下,如果两个页面同时用这个生成验证码图片
那么第一个访问的时候页面会不会验证失败呢?
可否在display的时候给验证码加个ID,这个验证的时候也通过这个ID来验证
发表于 2011-7-6 22:53:19 | 显示全部楼层
两个页面如果是同一个浏览器同一个用户,那会失效。因为是同一个SESSION,不过这种情况非常少见。

如果是两个用户(或者多个用户)访问同一个页面,那没影响。
您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2019-11-15 15:13

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表