PHP实现漂亮的验证码功能

您好,欢迎来到百闽人生网登录 注册

百闽首页 | 考试日历 | 百闽娱乐 | 书信频道 | 节日庆典 | 语录句子 | 免费发布培训课程

百闽人生网

百闽人生网 > 培训新闻 > 电脑/IT > PHP实现漂亮的验证码功能

PHP实现漂亮的验证码功能

网站为了防止用户利用机器人自动注册、登录、灌水,采用了验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片, 图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。这里展示了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 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: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 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();


首页 1 2 下页 

关于我们 | 招生合作 | 负责声明 | 常见问题 | 诚聘英才 | 联系我们

Copyright©2014 www.bminlife.com 百闽人生网 版权所有©百闽人生网 闽ICP备14001301号
本文标题:PHP实现漂亮的验证码功能
分站加盟及广告服务QQ:1476191318
友情提示:本站所有信息均由本站注册会员免费发布,如涉及版权问题或虚假信息请及时与本站联系。——我们一直在追求真实!