返回列表 回复 发帖

fleaphp学习笔记之ImgCode使用

FLEA_Helper_ImgCode类实现了一个简单的图像验证码生成器,并带有检查验证方法。当启用了SESSION时,验证码会保存在SESSION中。

     基本属性:

       $_code:私有属性,保存生成的验证码。

     $_expired:私有属性,保存验证码过期时间。

       $imagetype:验证码图片的类型(默认为 jpeg)。

     $keepCode:指示是否在生成验证码图片时保留已有的验证码,默认为false,不保留。

     说明: 保留已有的验证码可以让用户在各个不同的页面都看到一致的验证码。 只有这个验证码使用后,已有的验证码才会失效。

       基本方法:

       构造函数 function FLEA_Helper_ImgCode()

     参数说明:无传入传出参数。

     构造函数主要做以下三方面的工作: 1、启动SESSION会话。 2、将$_SESSION['IMGCODE']的值指定给$_code属性,如果$_SESSION['IMGCODE']不存在,则$_code属性值为空。 3、将$_SESSION['IMGCODE_EXPIRED']的值指定给$_expired属性,如果$_SESSION['IMGCODE_EXPIRED']不存在,则$_expired属性值为0。

         function check($code) 检查图像验证码是否有效(不区分大小写)

         参数说明: $code:指定验证码字符串。 返回值:有效为true,无效为false。

         function checkCaseSensitive($code)检查图像验证码是否有效(区分大小写)

         参数说明: $code:指定验证码字符串。 返回值:验证码有效返回true,否则返回false。

         function clear() 清除 session 中的 imgcode 相关信息

         参数说明:无传入传出参数。

         function image($type = 0, $length = 4, $lefttime = 900, $options = null)利用 GD 库产生验证码图像

           参数说明: $type:验证码包含的字符类型,0 - 仅数字、1 - 仅字母、其它值 - 数字和字母混合 $length:验证码长度 $leftime:验证码有效时间(秒) $options:附加选项,可以指定字体、宽度和高度等参数

         目前,$options 参数支持下列选项: - paddingLeft:指定左边距,默认为3(像素)。 paddingRight:指定右边距,默认为3(像素)。 paddingTop:指定上边距,默认为2(像素)。 paddingBottom:指定下边距,默认为2(像素)。 - border:指定边框线厚度,默认为1(像素)。 borderColor:指定边框线颜色,默认为黑色(0x000000)。 - font:指定字体,默认为5。 color:指定字体颜色,默认为白色(0xffffff)。 bgcolor:指定背景色,默认为中灰(0x666666)。 **注意: 如果 font 为 0-5,则使用 GD 库内置的字体。 如果要指定字体文件,则 font 选项必须指定为带绝对路径的字体文件。

         function _hex2rgb($color, $defualt = 'ffffff')(私有方法,类内部调用)将十六进制表示的颜色值转换为rgb

           参数说明: $color:指定十六进制表示的颜色值。例如:0x66CC00/#66CC00/66CC00 $defualt:指定一个缺省的十六进制值,默认为ffffff。说明:如果指定的十六进制的颜色值的字符个数(0x、#除外)不等于3或6,则使用$default指定的值进行转换。**注意,$default指定的值开头不能含有0x或#字符。返回值:rgb颜色值数组。例如:array(255,255,255)。

使用举例:模版页面中,在需要显示验证码的地方使用
       <img src="<?php echo $this->_url('imgcode'); ?>" />
       接下来为显示验证码的控制器编写imgcode方法:
       function actionImgcode() { $imgcode =& FLEA::getSingleton('FLEA_Helper_ImgCode'); $imgcode->image(); }
       最后,对于用户提交的表单做如下验证:
       function actionSubmit() {

           $imgcode =& FLEA::getSingleton('FLEA_Helper_ImgCode');

           imgcode if ($imgcode->check($_POST['imgcode'])) {
           // 验证通过 }

           }
厚实的生活,扎实的努力,总会换得太阳的如花笑靥!
返回列表