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

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

如何写一个漂亮的PHP验证码?兄弟连PHP培训小编分享一段代码给大家:

<?php

classImagecode{

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;

}

functionimageout(){

$im=$this->createimagesource();

$this->setbackgroundcolor($im);

$this->set_code($im);

$this->setdistrubecode($im);

ImageGIF($im);

ImageDestroy($im);

}

privatefunctioncreateimagesource(){

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

}

privatefunctionsetbackgroundcolor($im){

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

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

}

privatefunctionsetdistrubecode($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);

}

}

privatefunctionset_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);

}

}

privatefunctionsessioncode(){

$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();

php

相关推荐