zoukankan      html  css  js  c++  java
  • 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,$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 functioncreateimagesource(){

      returnimagecreate($this->width,$this->height);

      }

      private functionsetbackgroundcolor($im){

      $bgcolor = ImageColorAllocate($im,rand(200,255),rand(200,255),rand(200,255));//±³¾°ÑÕÉ«

      imagefill($im,0,0,$bgcolor);

      }

      private functionsetdistrubecode($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 functionset_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 functionsessioncode(){

      $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=newImagecode(160,50);

      $imagecode->imageout();

  • 相关阅读:
    GitHub Android Libraries Top 100 简介
    GitHub Top 100 的项目(iOS)
    iOS 学习资源
    HTTP和GET/POST请求(NSURLConnection)
    RunLoop
    HTML5 拖放
    网络安全与加密
    Cocoapods的安装
    iOS中的单例模式
    SDWebImage
  • 原文地址:https://www.cnblogs.com/xdlltao/p/5948413.html
Copyright © 2011-2022 走看看