用户
 找回密码
 入住 CI 中国社区
搜索
查看: 32483|回复: 47
收起左侧

[辅助方法 Helper] [getcode_helper.php]验证码函数

    [复制链接]
发表于 2008-6-23 14:22:22 | 显示全部楼层 |阅读模式
说明:
1,将getcode_helper.php 解压到 system\application\helpers
2,调用 $this->load->helper('getcode');
3,示例
      #Controller
      #show.php
PHP复制代码
 
<?
class show extends Controller{
       function __construct()
       {
            parent::Controller();
                        $this->load->helper('url');
                        $this->load->helper('getcode');
       }
 
   function d(){
            echo "<img src=/scode.gif><form method='post' action='ck'><input name='ccd'><input type='submit'></form>";
   }
   
   function scode(){
           code();
   }
   
   function ck(){
        $str=$_POST['ccd'];
           if(chk_code($str)){echo "ok";}
           else {show_error('验证码错误');}
   }
 
}
?>
 
复制代码


#routers.php
PHP复制代码
 
$route['([a-z0-9]*).gif'] = "show/$1"; //在url路由中添加这条规则
 
复制代码


效果图:
111.jpg 图一

[ 本帖最后由 yygcom 于 2008-6-23 14:31 编辑 ]

getcode_helper.rar

836 Bytes, 下载次数: 922

验证码函数

评分

参与人数 1威望 +5 收起 理由
Hex + 5 原创内容

查看全部评分

发表于 2008-6-23 14:28:45 | 显示全部楼层
感谢投递!加分!
发表于 2008-6-25 08:28:42 | 显示全部楼层
都找了好几天了,比我自己写的好看,谢了
发表于 2008-6-25 10:56:51 | 显示全部楼层
楼主是好人。
顶上。
发表于 2008-7-11 13:42:34 | 显示全部楼层
PHP复制代码
<?php
//生成验证码图片
Header("Content-type: image/PNG");  
srand((double)microtime()*1000000);//播下一个生成随机数字的种子,以方便下面随机数生成的使用
 
session_start();//将随机数存入session中
$_SESSION['authcode']="";
$im = imagecreate(62,20); //制定图片背景大小
 
$black = ImageColorAllocate($im, 0,0,0); //设定三种颜色
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200);
 
imagefill($im,0,0,$gray); //采用区域填充法,设定(0,0)
 
while(($authcode=rand()%100000)<10000);
//将四位整数验证码绘入图片
$_SESSION['authcode']=$authcode;
imagestring($im, 5, 10, 3, $authcode, $black);
// 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 座标处(图像的左上角为 0, 0)。
//如果 font 是 1,2,3,4 或 5,则使用内置字体
 
for($i=0;$i<200;$i++)   //加入干扰象素
{
    $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
    imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
 
 
ImagePNG($im);
ImageDestroy($im);
?>
//这个验证码也不错,没有写成helper,大家需要的自己改吧,呵呵
复制代码

评分

参与人数 1威望 +5 收起 理由
Hex + 5 原创内容

查看全部评分

发表于 2008-9-10 18:39:09 | 显示全部楼层
我怎么弄出来的图片不显示哈,
有没有调试过的朋友,发下代码
发表于 2008-9-18 18:04:10 | 显示全部楼层
怎么调用不出来呐
 楼主| 发表于 2008-9-24 16:11:11 | 显示全部楼层

特别说明

如果遇到出错,一般都是由于BOM的问题引发的,至于BOM的问题请自行GOOLE一下
发表于 2008-9-25 17:30:17 | 显示全部楼层
这个简单一些,哈哈
发表于 2008-9-26 09:53:28 | 显示全部楼层
楼主那个getcode_helper下载下来是CI首页的,不是验证码的助手函数??
cocely的那个代码我改成helper,可以放在helper下:

PHP复制代码
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//-------------------------------------
// 文件说明:生成验证码
//-------------------------------------
if ( ! function_exists('getcode')){
        function getcode() {
                Header("Content-type: image/PNG");  
                srand((double)microtime()*1000000);//播下一个生成随机数字的种子,以方便下面随机数生成的使用
               
                session_start();//将随机数存入session中
                $_SESSION['authcode']="";
                $im = imagecreate(62,20); //制定图片背景大小
               
                $black = ImageColorAllocate($im, 0,0,0); //设定三种颜色
                $white = ImageColorAllocate($im, 255,255,255);
                $gray = ImageColorAllocate($im, 200,200,200);
               
                imagefill($im,0,0,$gray); //采用区域填充法,设定(0,0)
               
                while(($authcode=rand()%100000)<10000);
                //将四位整数验证码绘入图片
                $_SESSION['authcode']=$authcode;
                imagestring($im, 5, 10, 3, $authcode, $black);
                // 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 座标处(图像的左上角为 0, 0)。
                //如果 font 是 1,2,3,4 或 5,则使用内置字体
               
                for($i=0;$i<200;$i++)   //加入干扰象素
                {
                    $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
                    imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
                }
               
                ImagePNG($im);
                ImageDestroy($im);
        }
}
?>
复制代码

本版积分规则