Home > Backend Development > PHP Tutorial > PHP production graphic verification code code sharing, php graphic verification code code_PHP tutorial

PHP production graphic verification code code sharing, php graphic verification code code_PHP tutorial

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-07-13 10:16:15
Original
1142 people have browsed it

PHP graphic verification code code sharing, PHP graphic verification code code

Effect:

myvcode.class.php: Encapsulates the class for creating verification codes

<&#63;php<br />/*<br />* file:myvcode.class.php<br />* 验证码类,类名Vcode<br />*/<br />class Vcode<br />{<br />private $width;              /*验证码宽度*/<br />private $height;             /*验证码高度*/<br />private $codeNum;            /*验证码字符个数*/<br />private $checkCode;            /*验证码字符*/<br />private $image;                /*验证码资源*/<br />private $pixNum;            /*绘制干扰点的个数*/<br />private $lineNum;            /*绘制干扰线的条数*/
Copy after login
/*<br />*构造方法实例化验证码对象,并初始化数据<br />*@param int $width         设置默认宽度<br />*@param int $height     设置默认高度<br />*@param int $codeNum    设置验证码中的字符个数<br />*@param int $pixNum        设置干扰点的个数<br />*@param int $lineNum    设置干扰线的数量<br />*/<br />function __construct($width=80,$height=40,$codeNum=4,$pixNum=40,$lineNum=5)<br />{<br />$this->width = $width;<br>$this->height = $height;<br>$this->codeNum = $codeNum;<br>$this->pixNum = $pixNum;<br>$this->lineNum = $lineNum;<br>}<br>/*内部私有方法,创建图像资源*/<br>private function getCreateImage()<br>{<br>$this->image = imagecreatetruecolor($this->width, $this->height);<br>$white = imagecolorallocate($this->image,0xff,0xff,0xff);<br>imagefill($this->image, 0, 0, $white);<br>$black = imagecolorallocate($this->image,0,0,0);<br>imagerectangle($this->image, 0, 0, $this->width-1, $this->height-1, $black);<br>}<br>/*内部私有方法,绘制字符,去掉o0Llz和012*/<br>private function createCheckCode()<br>{<br>$code = '3456789abcdefghijkmnpqrstuvwxyABCDEFGHIJKMNPQRSTUVWXY';<br>$this->checkCode = "";<br>for($i=0; $i<$this->codeNum;$i++)<br>{<br>$char = $code{rand(0,strlen($code) - 1)};<br>$this->checkCode .= $char;<br>$fontColor = imagecolorallocate($this->image, rand(0,128), rand(0,128),rand(0,128));<br>$fontSize = rand(3,5);<br>$x = rand(0,$this->width-imagefontwidth($fontSize));<br>$y = rand(0,$this->height-imagefontheight($fontSize));<br>imagechar($this->image, $fontSize, $x, $y, $char, $fontColor);<br>}<br>}<br>/*内部私有方法设置干扰元素*/<br>private function setDisturbColor()<br>{<br>/*绘制干扰点*/<br>for($i=0; $i<$this->pixNum; $i++)<br>{<br>$color = imagecolorallocate($this->image, rand(0,255), rand(0,255), rand(0,255));<br>imagesetpixel($this->image, rand(1,$this->width-2), rand(1,$this->height-2), $color);<br>}<br>/*绘制干扰线*/<br>for($i=0; $i<$this->lineNum; $i++)<br>{<br>$color = imagecolorallocate($this->image, rand(0,255), rand(0,255), rand(0,255));<br>imageline($this->image, rand(1,$this->width / 2), rand(1,$this->height / 2),<br>rand($this->width / 2,$this->width – 2), rand($this->height / 2,$this->height – 2), $color);
Copy after login
}<br>}<br>/*开启session保存 利用echo 输出图像*/<br>function __toString()<br>{<br>$_SESSION['code'] = strtoupper($this->checkCode);<br>$this->getCreateImage();<br>$this->createCheckCode();<br>$this->setDisturbColor();<br>$this->outputImg();<br>}<br>/*内部私有方法输出图像*/<br>private function outputImg()<br>{<br>header("content-type:image/png");<br>imagepng($this->image);<br>}<br>/*析构方法,释放对象*/<br>function __destruct()<br>{<br>imagedestroy($this->image);<br>}<br>}<br>?>
Copy after login

imgcode.php output image

<&#63;php
session_start();
require_once('myvcode.class.php');
echo new Vcode();
&#63;>
Copy after login

test.html: Same as img tag reference

<img src="imgcode.php">
Copy after login

You can add an a tag and use js to achieve the effect of changing one picture:

/*Partial refresh to change verification code*/
function changeCode()
{
var imgcode = document.getElementById(‘code’);
var change = document.getElementById(‘change’);
change.onclick = function()
{
/*You must add the following parameters to refresh*/
imgcode.src='code.php?tm'+Math.random();
}
}

code and change are the ids of img and a respectively

PHP image verification code

This is the verification code of phpcms. It has been used on hundreds of thousands of websites and is very easy to use.

session_start();

$enablegd = 1;
//Determine whether the image processing function exists
$funcs = array('imagecreatetruecolor','imagecolorallocate','imagefill','imagestring','imageline','imagerotate','imagedestroy','imagecolorallocatealpha' ,'imageellipse','imagepng');
foreach($funcs as $func)
{
if(!function_exists($func))
{
$enablegd = 0;
break;
}
}

ob_clean(); //Clean buffer

if($enablegd)
{
//create captcha
$consts = 'cdfgkmnpqrstwxyz23456';
$vowels = 'aek23456789';
for ($x = 0; $x < 6; $x++)
{
$const[$x] = substr($consts, mt_rand(0,strlen($consts)-1),1); //Get a random number in $consts
$vow[$x] = substr($vowels, mt_rand(0 ,strlen($vowels)-1),1); //Get a random number in $vowels
}
$radomstring = $const[0] . $vow[0] .$const[2] . $const[1] . $vow[1] . $const[3] . $vow[3] . $const[4];
$_SESSION['checkcode'] = $string = substr($radomstring, 0,4); //Display 4 characters

$imageX = strlen($radomstring)*8; //Width of the image
$imageY = 20; //Height of the image
$ im = imagecreatetruecolor($imageX,$imageY); //Create a new true color image

//creates two variables to store color
$background = imagecolorallocate($im, rand(180, 250), rand(180, 250), rand(180, 250)); //Background color
$foregroundArr = array(imagecolorallocate($im, rand(0, 20), rand(0, 20), rand(0, 20)),
imagecolorallocate($im, rand(0, 20), rand(0, 10), rand(245, 255)),
imagecolorallocate($im, rand(245, .... ..The rest of the full text>>

After inserting the PHP image verification code, write a judgment code when submitting? ?

action.php

session_start();
$password = md5(trim($_POST['password']));
$str_reg=$_POST ['number']; //Verification code filled in by the user
$str_reg = strtoupper($str_reg); //Convert to uppercase

if ($str_reg !=$_SESSION['yzm'] or empty ($str_reg) )
{echo "Verification code error";
}
else
{
$_SESSION['yzm']=""; //Clear session
… …
Execute database query operation, verify username and password
}
?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/898291.htmlTechArticlePHP production graphic verification code code sharing, php graphic verification code code effect: myvcode.class.php: encapsulation creation verification Code class php /* * file:myvcode.class.php * Verification code class, class name Vcode...
Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template