| 
 | 
 
 在做验证码显示验证 注册问题,根据ci自带验证码类库可以生产验证码,但无法保存到session 在 验证类里面 用 
$this->CI  = &get_instance();$this->CI->session->set_userdata($this->name, $randcode); 
 
问题出现   验证码就不显示了 
 
 
哪位能帮下 那里出错了? 
 
验证码类:Caotcha_code.php 
 
<?php    
class Captcha_code   
{   
        var $CI; 
    var $width='100';   
    var $num='4';   
    var $height='30';   
    var $name='randcode';   
    public function __construct($conf="")   
    {   
        if($conf!="")   
        {   
            foreach($conf as $key=>$value)   
            {   
                $this->$key=$value;   
            }   
        }   
    }   
 
    function show()   
    {   
 
                ob_clean(); 
        Header("Content-type: image/gif");   
        /*   
        * 初始化   
        */   
        $border = 0; //是否要边框 1要:0不要   
        $how = $this->num; //验证码位数   
        $w = $this->width; //图片宽度   
        $h = $this->height; //图片高度   
        $fontsize = 10; //字体大小   
        $alpha = "abcdefghijkmnopqrstuvwxyz"; //验证码内容1:字母   
        $number = "023456789"; //验证码内容2:数字   
        $randcode = ""; //验证码字符串初始化   
        srand((double)microtime()*1000000); //初始化随机数种子   
 
        $im = ImageCreate($w, $h); //创建验证图片   
 
        /*   
        * 绘制基本框架   
        */   
        $bgcolor = ImageColorAllocate($im, 255, 255, 255); //设置背景颜色   
        ImageFill($im, 0, 0, $bgcolor); //填充背景色   
        if($border)   
        {   
            $black = ImageColorAllocate($im, 0, 0, 0); //设置边框颜色   
            ImageRectangle($im, 0, 0, $w-1, $h-1, $black);//绘制边框   
        }   
 
        /*   
        * 逐位产生随机字符   
        */   
        for($i=0; $i<$how; $i++)   
        {      
            $alpha_or_number = mt_rand(0, 1); //字母还是数字   
            $str = $alpha_or_number ? $alpha : $number;   
            $which = mt_rand(0, strlen($str)-1); //取哪个字符   
            $code = substr($str, $which, 1); //取字符   
            $j = !$i ? 4 : $j+15; //绘字符位置   
            $color3 = ImageColorAllocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); //字符随即颜色   
            ImageChar($im, $fontsize, $j, 3, $code, $color3); //绘字符   
            $randcode .= $code; //逐位加入验证码字符串   
        }   
                 
        /*   
        * 添加干扰   
        */   
        for($i=0; $i<5; $i++)//绘背景干扰线   
        {      
            $color1 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰线颜色   
            ImageArc($im, mt_rand(-5,$w), mt_rand(-5,$h), mt_rand(20,300), mt_rand(20,200), 55, 44, $color1); //干扰线   
        }      
        for($i=0; $i<$how*15; $i++)//绘背景干扰点   
        {      
            $color2 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰点颜色    
            ImageSetPixel($im, mt_rand(0,$w), mt_rand(0,$h), $color2); //干扰点   
        }   
 
        //把验证码字符串写入session   
 
        //$this->session->set_userdata(array($this->name=>$randcode));   
                  
         //$_SESSION[$this->name]=$randcode;   
                $this->CI  = &get_instance(); 
                $this->CI->session->set_userdata($this->name, $randcode); 
 
        /*绘图结束*/   
        Imagegif($im);   
        ImageDestroy($im);   
        /*绘图结束*/   
                 
    } 
 
}   
?>   控制器   user.php下  显示验证码 
 
function verify_image() {          
                 
        $this->load->library('Captcha_code');   
        $this->Captcha_code->show();   
                $randcode = $this->session->userdata('randcode'); 
                 
    }   
 
 
view页面 
<p><span class="name">标 识 码:</span> 
<input id="mark" name="mark" type="text" value=""  class="text" /><span id="markTip" class="onShow"></span> 
<img src="<?php echo site_url('user/verify_image');?>" name="checkCodeImg" id="checkCodeImg" border="0" /></a> 
<a href="javascript:reloadCode();" class="change_yz">换一张</a> 
 
 
 
求解  谢谢! 
 
 
 
 |   
 
 
 
 |