一个关于php里面GP库的问题

WBOY
發布: 2016-06-23 13:33:19
原創
939 人瀏覽過

把GD库封装进类里面了,但不知道在那里出错了,
请有空滴大牛们帮忙看看,小弟感激不尽,谢谢
找了两天都没找到那里错了,图片还是显示不了,
如:

(先写了个表单biaodan.php)
nbsp;HTML>

    


        codetest
        
        
    
    
        

            name:

            pass:

            code:

            一个关于php里面GP库的问题

            

        

    



(然后封装了个类vcode.class.php)
    class Vcode{
        private $width; //宽
        private $height;//高
        private $num; //数量
        private $code;//验证码
        private $img; //图像的资源
        
        //构造方法, 三个参数
        function __construct($width,$height,$num){
            $this->width=$width;
            $this->height=$height;
            $this->num=$num;
            $this->code=$this->gocode();//调用自己的方法
        }
        
        //获取字符的验证码, 用于保存在服务器中
        function getcode(){
            
            return $this->code;
            
            
        }
        //输出图像
        function outimg(){
            //创建背景 (颜色, 大小, 边框)
            $this->createback();

            //输出图像
            $this->printimg();
        }
        //创建背景
        private function createback(){
            //创建资源
            $this->img=imagecreatetruecolor($this->width,$htis->height);
            //设置随机颜色
            $bgcolor=imagecolorallocate($this->img,rand(225,255),rand(225,255),rand(225,255));
            //设置背景填充
            imagefill($this->img,0,0,$bgcolor);
            //画边框
            $bordercolor=imagecolorallocate($this->img,0,0,0);
            imagerectangle($this->img,0,0,$this->width-1,$this->height-1,$bordercolor);
        }
        
        //画字
        private function outstring(){
        
        
        }
        
        //设置干扰元素
        private function grcode(){
        
        }
        
        //输出图像
        private function printimg(){
            if(imagetypes() & IMG_GIF){
                header("Content-type:image/gif");
                imagegif($this->img);
            }else if(imagetypes() & IMG_JPG){
                header("Content-type:image/jpeg");
                imagejpeg($this->img);
            }else if(imagetypes() & IMG_PNG){
                header("Content-type:image/png");
                imagepng($this->img);
            }else{
                die("No image support in this PHP server");
            }
        }
        
        //生成验证码字符串
        private function gocode(){
            $codes = "3456789abcdefghijkmnpqrstuvwxyABCDEFGHIJKLMNPQRSTUVWXY";
            $code= "";
            for($i=0;$inum;$i++){
                $code.=$codes{rand(0,strlen($codes)-1)};
            }
            return $code;
        }
        
        //用于自动销毁图像资源
        function __destruct(){
            imagedestroy($this->img);
        }
    
    }


(在调用类code.php)
    //开启session
    session_start();
    include "vcode.class.php";
    //构造方法
    $vcode= new Vcode(80,25,4);
    //将验证码放到服务器自己的空间保存一份
    $_SESSION=$vcode->getcode();
    //将验证码图片输出
    $vcode->outimg();


回复讨论(解决方案)

你在浏览器地址栏输入code.php看看,看能不能生成验证码的图片
貌似也没看见你将数字写入画布上啊
写不好还是去网上找个能用的吧  晚上资源那么多

 //创建资源            $this->img=imagecreatetruecolor($this->width,$htis->height);
登入後複製

 //创建资源
            $this->img=imagecreatetruecolor($this->width,$ htis->height);

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板