首页 > 编程 > PHP > 正文

一个漂亮的PHP验证码

2020-03-22 20:22:40
字体:
来源:转载
供稿:网友
  • 验证码在WEB应用中非常重要,通常用来防止用户恶意提交表单,如恶意注册和登录、论坛恶意灌水等。
    自己可以导入字体,可以按照自己的额需要随便修改。

    一个漂亮的验证码,体现出网站的大方。

    <?php    html' target='_blank'>class Imagecode{        private $width ;        private $height;        private $counts;        private $distrubcode;        private $fonturl;        private $session;        function __construct($width = 120,$height = 30,$counts = 5,$distrubcode="1235467890qwertyuipkjhgfdaszxcvbnm",$fonturl="C:WindowsFontsTektonPro-BoldCond.otf"){            $this->width=$width;            $this->height=$height;            $this->counts=$counts;            $this->distrubcode=$distrubcode;            $this->fonturl=$fonturl;            $this->session=$this->sessioncode();            session_start();            $_SESSION['code']=$this->session;        }                 function imageout(){            $im=$this->createimagesource();            $this->setbackgroundcolor($im);            $this->set_code($im);            $this->setdistrubecode($im);            ImageGIF($im);            ImageDestroy($im);        }                private function createimagesource(){            return imagecreate($this->width,$this->height);        }        private function setbackgroundcolor($im){            $bgcolor = ImageColorAllocate($im, rand(200,255),rand(200,255),rand(200,255));//±³¾°ÑÕÉ«            imagefill($im,0,0,$bgcolor);        }        private function setdistrubecode($im){            $count_h=$this->height;            $cou=floor($count_h*2);            for($i=0;$i<$cou;$i++){                $x=rand(0,$this->width);                $y=rand(0,$this->height);                $jiaodu=rand(0,360);                $fontsize=rand(8,15);                $fonturl=$this->fonturl;                $originalcode = $this->distrubcode;                $countdistrub = strlen($originalcode);                $dscode = $originalcode[rand(0,$countdistrub-1)];                $color = ImageColorAllocate($im, rand(40,140),rand(40,140),rand(40,140));                imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$dscode);                            }        }        private function set_code($im){                $width=$this->width;                $counts=$this->counts;                $height=$this->height;                $scode=$this->session;                $y=floor($height/2)+floor($height/4);                $fontsize=rand(30,35);                $fonturl="C:WindowsFontsAdobeGothicStd-Bold.otf";//$this->fonturl;                                $counts=$this->counts;                for($i=0;$i<$counts;$i++){                    $char=$scode[$i];                    $x=floor($width/$counts)*$i+8;                    $jiaodu=rand(-20,30);                    $color = ImageColorAllocate($im,rand(0,50),rand(50,100),rand(100,140));                    imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$char);                }                                                }        private function sessioncode(){                $originalcode = $this->distrubcode;                $countdistrub = strlen($originalcode);                $_dscode = "";                $counts=$this->counts;                for($j=0;$j<$counts;$j++){                    $dscode = $originalcode[rand(0,$countdistrub-1)];                    $_dscode.=$dscode;                }                return $_dscode;                        }    }    Header("Content-type: image/GIF");    $imagecode=new  Imagecode(160,50);    $imagecode->imageout();

    谢谢关注websites博客!

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表