前端页面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》对你有帮助,请点赞、收藏,并留下你的观点哦!