巅云智能建站平台搭建版(创业流派版)火爆上线,毕生受权!新增:文章智能收罗+全站真静态打包+都会分站+智能小法式+不法词过滤+H5自顺应+智能链词等功效功效概况
建站专提News

PHP完成的封装考证码类详解

一佰互联网站开辟设想(www.taishanly.com) 宣布日期 2020-04-29 09:02:37 阅读数: 104

用PHP写一个考证码类,并停止封装。
类名: validationcode.class.php
代码以下:
复制代码 代码以下:
<?php
 class ValidationCode {
  private $width;
  private $height;
  private $codeNum;
  private $image;   //图象资本
  private $disturbColorNum;
  private $checkCode;
  function __construct($width=80, $height=20, $codeNum=4){
   $this->width=$width;
   $this->height=$height;
   $this->codeNum=$codeNum;
   $this->checkCode=$this->createCheckCode();
   $number=floor($width*$height/15);   if($number > 240-$codeNum){
    $this->disturbColorNum= 240-$codeNum;
   }else{
    $this->disturbColorNum=$number;
   }  }
  //经由过程拜候该体例向阅读器中输入图象
  function showImage($fontFace=""){
   //第一步:建立图象背景
   $this->createImage();
   //第二步:设置搅扰元素
   $this->setDisturbColor();
   //第三步:向图象中随机画出文本
   $this->outputText($fontFace);
   //第四步:输入图象
   $this->outputImage();
  }  //经由过程挪用该体例获得随机建立的考证码字符串
  function getCheckCode(){
   return $this->checkCode;
  }
  private function createImage(){
   //建立图象资本
   $this->image=imagecreatetruecolor($this->width, $this->height);
   //随机背风景
   $backColor=imagecolorallocate($this->image, rand(225, 255), rand(225,255), rand(225, 255));
   //为背景添充色彩
   imagefill($this->image, 0, 0, $backColor);
   //设置边框色彩
   $border=imagecolorallocate($this->image, 0, 0, 0);
   //画出矩形边框
   imagerectangle($this->image, 0, 0, $this->width-1, $this->height-1, $border);
  }
  private function  setDisturbColor(){
   for($i=0; $i<$this->disturbColorNum; $i++){
    $color=imagecolorallocate($this->image, rand(0, 255), rand(0, 255), rand(0, 255));
    imagesetpixel($this->image, rand(1, $this->width-2), rand(1, $this->height-2), $color);
   }
   for($i=0; $i<10; $i++){
    $color=imagecolorallocate($this->image, rand(200, 255), rand(200, 255), rand(200, 255));
    imagearc($this->image, rand(-10, $this->width), rand(-10, $this->height), rand(30, 300), rand(20, 200), 55, 44, $color);
   }
  }
  private function createCheckCode(){
//这里首要发生随机码,从2起头是为了辨别1和l
   $code="23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ";
   $string="";
   for($i=0; $i < $this->codeNum; $i++){
    $char=$code{rand(0, strlen($code)-1)};
    $string.=$char;
   }
   return $string;
  }
  private function outputText($fontFace=""){
   for($i=0; $i<$this->codeNum; $i++){
    $fontcolor=imagecolorallocate($this->image, rand(0, 128), rand(0, 128), rand(0, 128));
    if($fontFace==""){
     $fontsize=rand(3, 5);
     $x=floor($this->width/$this->codeNum)*$i+3;
     $y=rand(0, $this->height-15);
     imagechar($this->image,$fontsize, $x, $y, $this->checkCode{$i},$fontcolor);
    }else{
     $fontsize=rand(12, 16);
     $x=floor(($this->width-8)/$this->codeNum)*$i+8;
     $y=rand($fontSize+5, $this->height);
     imagettftext($this->image,$fontsize,rand(-30, 30),$x,$y ,$fontcolor, $fontFace, $this->checkCode{$i});
    }
   }
  }
  private function outputImage() {
   if(imagetypes() & IMG_GIF){
    header("Content-Type:image/gif");
    imagepng($this->image);
   }else if(imagetypes() & IMG_JPG){
    header("Content-Type:image/jpeg");
    imagepng($this->image);
   }else if(imagetypes() & IMG_PNG){
    header("Content-Type:image/png");
    imagepng($this->image);
   }else if(imagetypes() & IMG_WBMP){
    header("Content-Type:image/vnd.wap.wbmp");
    imagepng($this->image);
   }else{
    die("PHP不撑持图象建立");
   }
  }
  function __destruct(){
   imagedestroy($this->image);
  }
 }
利用以下:
测试,挪用考证码类
code.php
复制代码 代码以下:
<?php
session_start();
include "validationcode.class.php";
$code=new ValidationCode(80, 20, 4);
$code->showImage();   //输入到页面中供 注册或登录利用
$_SESSION["code"]=$code->getCheckCode();  //将考证码保管到办事器中

一佰互联是天下着名建站品牌办事商,咱们有九年、网站建造、网页设想、php开辟和域名注册及假造主机办事履历,供给的办事更是天下着名。最近几年来还整合团队上风自立开辟了可视化多用户”“3.0平台版,拖拽排版网站建造设想,轻松完成pc站、手机微网站、小法式、APP一体化全网营销网站扶植 ,已胜利的为天下上百家收集公司供给自助建站平台搭建办事。更多资讯:tags标签

相干消息more

15
12月
网站顶底部若何设想显得不那末枯燥

网站设想中企业大都侧重对导航与栏目标设想,以为这才是一个网站的中间,是客户会看的主要地区。普通在翻开网站以后,咱们都习气于从上到下的挨次来浏... >>概况

22
11月
企业建站体系

企业建站体系,统筹精彩模板、搜刮引擎优化建站体系,wap建站法式、微信网站的一款企业建站体系上线了。企业建站模板展现:http://www.yin... >>概况

26
03月
我国网站高危缝隙明显增添 收集宁静情势严重

简介:飞笛讯,据媒体报道,《中国互联网站成长状态及其宁静报告(2018)》在日前召开的“2018中国互联网站成长”服装服装服装服装服装论坛t.vhao.nett.vhao.nett.vhao.nett.vhao.nett.vhao.net上重磅宣布。《报告》显... >>概况

27
04月
PHP 设想形式系列之 specificat

1、形式界说规格形式是组合形式的一种扩大,在框架性开辟中利用较多(名目级开辟很少利用),这里做一个简略的先容。规格形式(Specificat... >>概况

高端网站扶植

美工统筹SEO,为企业电子商务营销助力!

德律风:

023-85725751
建站

产物

域名注册 假造主机 云办事器 企业邮局
智能建站 APP打包 微站/小法式 创业平台
网站推行 媒体营销 智能收罗 AI机械人
400德律风 短信营销 店销机械人
私家定制 流派网站