失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php高洛峰_PHP 验证码   高洛峰 细说PHP

php高洛峰_PHP 验证码   高洛峰 细说PHP

时间:2024-02-21 18:20:44

相关推荐

php高洛峰_PHP 验证码   高洛峰 细说PHP

前端页面index.php<?php

header('content-type:text/html;charset=utf-8');

if(isset($_POST['dosubmit'])){

session_start();

if(strtoupper($_SESSION['code'])==strtoupper($_POST['code'])){

echo'输入成功!

';

}else{

echo'输入不对

';

}

}

?>

用户名:

标题:

内容:

验证码:

生成验证码图片test.php<?php

//开启session

session_start();

require'print.php';//导入验证码类文件

$vcode=newVcode(80,30,4);//实例化验证码类

//将验证码放到服务器自己的空间保存一份

$_SESSION['code']=$vcode->getCode();

//将验证码的图片输出

$vcode->outimg();//调用方法

验证码类 print.php<?php

classVcode{

private$width;//宽

private$heigth;//高

private$num;//数量

private$code;//验证码

private$img;//图像资源

//构造方法

function__construct($width=80,$height=25,$num=4){

$this->width=$width;

$this->heigth=$height;

$this->num=$num;

$this->code=$this->createCode();

}

//获取字符的验证码

functiongetCode(){

return$this->code;

}

//输出验证码图形

functionoutimg(){

//创建背景颜色大小边框

$this->createBack();

//画字大小字体颜色

$this->outString();

//干扰元素点线条

$this->setDisturb();

//输出图像

$this->printImg();

}

//创建背景

privatefunctioncreateBack(){

//创建资源

$this->img=p_w_picpathcreatetruecolor($this->width,$this->heigth);

//设置随机背景颜色

$bgcolor=p_w_picpathcolorallocate($this->img,rand(225,255),rand(225,255),rand(225,255));

//填充背景色

p_w_picpathfill($this->img,0,0,$bgcolor);

//画矩形

$bordercolor=p_w_picpathcolorallocate($this->img,0,0,0);

p_w_picpathrectangle($this->img,0,0,$this->width-1,$this->heigth-1,$bordercolor);

}

//画字

privatefunctionoutString(){

for($i=0;$inum;$i++){

$color=p_w_picpathcolorallocate($this->img,rand(0,128),rand(0,128),rand(0,128));

$font=rand(3,5);

$x=3+($this->width/$this->num)*$i;

$y=rand(1,5);

p_w_picpathstring($this->img,$font,$x,$y,$this->code{$i},$color);

}

}

//设置干扰元素

privatefunctionsetDisturb(){

//加上点数

for($i=0;$i<100;$i++){

$color=p_w_picpathcolorallocate($this->img,rand(0,255),rand(0,255),rand(0,255));

p_w_picpathsetpixel($this->img,rand(1,$this->width-2),rand(1,$this->heigth-2),$color);

}

//加上线条

for($i=0;$i<10;$i++){

$color=p_w_picpathcolorallocate($this->img,rand(0,255),rand(0,128),rand(0,255));

p_w_picpatharc($this->img,rand(-10,$this->width+10),rand(-10,$this->heigth+10),rand(30,300),rand(30,300),55,44,$color);

}

}

//输出图像

privatefunctionprintImg(){

//header("Content-Type:p_w_picpath/jpeg");

//p_w_picpathjpeg($this->img);

if(p_w_picpathtypes()&IMG_GIF){

header("Content-Type:p_w_picpath/gif");

p_w_picpathjpeg($this->img);

}elseif(p_w_picpathtypes()&IMG_JPEG){

header("Content-Type:p_w_picpath/jpeg");

p_w_picpathjpeg($this->img);

}elseif(p_w_picpathtypes()&IMG_JPG){

header("Content-Type:p_w_picpath/jpg");

p_w_picpathjpeg($this->img);

}elseif(p_w_picpathtypes()&IMG_PNG){

header("Content-Type:p_w_picpath/png");

p_w_picpathjpeg($this->img);

}

}

//生成验证码

privatefunctioncreateCode(){

$codes="23456789abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ";

$code="";

for($i=0;$inum;$i++){

$code.=$codes{rand(0,strlen($codes)-1)};

}

return$code;

}

//释放图像资源

function__destruct(){

p_w_picpathdestroy($this->img);

}

}

如果觉得《php高洛峰_PHP 验证码   高洛峰 细说PHP》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。