【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

一个漂亮的PHP验证码

原创 2015年07月09日 18:14:53
验证码在WEB应用中非常重要,通常用来防止用户恶意提交表单,如恶意注册和登录、论坛恶意灌水等。
自己可以导入字体,可以按照自己的额需要随便修改。

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


<span style="font-size:14px;"><?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();


</span>


谢谢关注websites博客!

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

php实现验证码的识别(中级篇)

在上篇文章php实现验证码的识别(初级篇)>中,讲了如何识别简单的验证,这里的简单只的是验证码有数字和字母组成,格式统一,每次出现位置固定。这篇文章将继续深入研究识别验证码,这次识别的目标是,验证码有...

php破解验证码(某知名网站)

php破解验证码(某知名网站)

php实现验证码的识别(初级篇)

近期研究一些突破验证码方面的知识,记录下来。一方面算是对这几天学习知识的总结帮助自己理解;另一方面希望对研究这方面的技术同学有所帮助;另外也希望引起网站管理者的注意,在提供验证码时多些考虑进去。由于刚...

php实现验证码的识别(初级篇)

近期研究一些突破验证码方面的知识,记录下来。一方面算是对这几天学习知识的总结帮助自己理解;另一方面希望对研究这方面的技术同学有所帮助;另外也希望引起网站管理者的注意,在提供验证码时多些考虑进去。由于刚...

利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别

--------------------------------------------------低调的分割线--------------------------------------------...

Php实现验证码功能

验证码这样的功能可以说是无处不在了,接下来使用php来实现验证码这样的功能,这里我是将验证码实现抽取到一个类中独立开来,那么后面如果再使用到验证码功能,直接引入该类文件并创建该类的实例,就可以使用验证...

php原生验证码类

一. 创建一个文件 img.php

php生成验证码、后台验证方法

1、yanzheng.class.php:

PHP图片验证码的实现-包括前后台页面

以前输出验证码的时候用过一个方法,在前台用JS生成验证码字符串,再传递到后台用PHP输出验证码图像。这样在验证时就不需要使用$_SESSION传递验证码的值,直接用JS比较生成的字符串和输入的字符串是...

php验证码--字符

字符验证码的制作分五步: 1.生成图像 2.生成随机数 3.制作干扰点、线 4.输出图像 5.销毁图像 下面直接上代码 服务器端:
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)