漂亮的PHP验证码

<?php
    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:\Windows\Fonts\TektonPro-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:\Windows\Fonts\AdobeGothicStd-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();
时间: 2024-11-06 13:36:42

漂亮的PHP验证码的相关文章

PHP入门培训教程 一个漂亮的PHP验证码

PHP入门培训教程 一个漂亮的PHP验证码 如何写一个漂亮的PHP验证码?兄弟连PHP培训小编分享一段代码给大家: <?php class Imagecode{ private $width ; private $height; private $counts; private $distrubcode; private $fonturl; private $session; function __construct($width = 120,$height = 30,$counts = 5,$

一个漂亮的php验证码类

一个漂亮的php验证码类(分享) 作者: 字体:[增加 减小] 类型:转载 下面小编就为大家分享一个漂亮的php验证码类.需要的朋友可以过来参考下 直接上代码: 复制代码 代码如下: //验证码类class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子 private $code;//验证码 private $codelen = 4;//验证码长度 pri

一个漂亮的PHP验证码

验证码在WEB应用中非常重要,通常用来防止用户恶意提交表单,如恶意注册和登录.论坛恶意灌水等. 自己可以导入字体,可以按照自己的额需要随便修改. 一个漂亮的验证码,体现出网站的大方. <span style="font-size:14px;"><?php class Imagecode{ private $width ; private $height; private $counts; private $distrubcode; private $fonturl;

建立一个漂亮的PHP验证码类文件及调用方式

//验证码类class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子 private $code;//验证码 private $codelen = 4;//验证码长度 private $width = 130;//宽度 private $height = 50;//高度 private $img;//图形资源句柄 private $font;//指定的字体

简单漂亮的php验证码函数

/* *说明:函数功能是生成验证码 * 参数说明:输入 长度,宽度,高度 */ function vcode($_code_length = 4, $_width = 75, $_height = 25){ $_font=dirname(__FILE__).'/font/Elephant.ttf';//注意字体路径要写对,否则显示不了图片 $_fontsize=$_height/1.8; $_nmsg=""; for($i=0;$i<$_code_length;$i++){ $_

漂亮的 PHP 验证码类

<?php //验证码类 class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';    //随机因子     private $code;                            //验证码     private $codelen = 4;                    //验证码长度     private $width = 130;   

一个漂亮的php验证码类(分享)

直接上代码: //验证码类 class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子 private $code;//验证码 private $codelen = 4;//验证码长度 private $width = 130;//宽度 private $height = 50;//高度 private $img;//图形资源句柄 private $font

献上一款漂亮的手写PHP验证码

献上一款漂亮的PHP验证码,可以根据个人需求作调整,代码如下(审美观不同,欢迎吐槽): <?php /** * Author: xiongwei * Email: [email protected] * * 注:本代码需要要用到 msyh.ttf 字体,请自行下载 **/ header("Content-type:image/png"); //图像尺寸 $width=180; $height=70; //字体样式 $font_style='./fontface/msyh.ttf'

【Dev Club 分享】腾讯验证码的十二年

源:http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653578147&idx=3&sn=94a8f8f8b4a23b2429ba18bd50c4e048&chksm=84b3b1a4b3c438b28476200037170798276cf7762a115dad9e4b49afeed3151955afe7cf82c4&scene=4#wechat_redirect 内容简介:验证码的诞生就是用来对抗自动机