本文实例为大家分享了php点击可刷新验证码的具体代码,供大家参考,具体内容如下
验证码类文件 CreateImg.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<?php
class ValidationCode
{
private $width , $height , $codenum ;
public $checkcode ; //产生的验证码
private $checkimage ; //验证码图片
private $disturbColor = '' ; //干扰像素
function __construct( $width = '80' , $height = '20' , $codenum = '4' )
{
$this ->width= $width ;
$this ->height= $height ;
$this ->codenum= $codenum ;
}
function outImg()
{
//输出头
$this ->outFileHeader();
//产生验证码
$this ->createCode();
//产生图片
$this ->createImage();
//设置干扰像素
$this ->setDisturbColor();
//往图片上写验证码
$this ->writeCheckCodeToImage();
imagepng( $this ->checkimage);
imagedestroy( $this ->checkimage);
}
private function outFileHeader()
{
header ( "Content-type: image/png" );
}
private function createCode()
{
$this ->checkcode = strtoupper ( substr (md5(rand()),0, $this ->codenum));
}
private function createImage()
{
$this ->checkimage = @imagecreate( $this ->width, $this ->height);
$back = imagecolorallocate( $this ->checkimage,255,255,255);
$border = imagecolorallocate( $this ->checkimage,0,0,0);
imagefilledrectangle( $this ->checkimage,0,0, $this ->width - 1, $this ->height - 1, $back ); // 白色底
imagerectangle( $this ->checkimage,0,0, $this ->width - 1, $this ->height - 1, $border ); // 黑色边框
}
private function setDisturbColor()
{
for ( $i =0; $i <=200; $i ++)
{
$this ->disturbColor = imagecolorallocate( $this ->checkimage, rand(0,255), rand(0,255), rand(0,255));
imagesetpixel( $this ->checkimage,rand(2,128),rand(2,38), $this ->disturbColor);
}
}
private function writeCheckCodeToImage()
{
for ( $i =0; $i <= $this ->codenum; $i ++)
{
$bg_color = imagecolorallocate ( $this ->checkimage, rand(0,255), rand(0,128), rand(0,255));
$x = floor ( $this ->width/ $this ->codenum)* $i ;
$y = rand(0, $this ->height-15);
imagechar ( $this ->checkimage, rand(5,8), $x , $y , $this ->checkcode[ $i ], $bg_color );
}
}
function __destruct()
{
unset( $this ->width, $this ->height, $this ->codenum);
}
}
?>
|
包含文件imgcode.php
1
2
3
4
5
6
7
|
<?php
session_start();
require_once ( 'CreateImg.class.php' );
$image = new ValidationCode( '80' , '20' , '4' ); //图片长度、宽度、字符个数
$image ->outImg();
$_SESSION [ 'validationcode' ] = $image ->checkcode; //存贮验证码到 $_SESSION 中
?>
|
前台文件 demo.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
?php
session_start();
$test = $_POST['test'];
$test = strtoupper(trim($test));
$submit = $_POST['submit'];
if(isset($submit)){
if($test==$_SESSION['validationcode']){
echo 'true';
} else {
echo 'false';
}
}
?>
< html >
< head >
< title >Image</ title >
< meta http-equiv = "content-type" content = "text/html;charset=utf-8" >
< script language = "javascript" >
function newgdcode(obj,url) {
obj.src = url+ '?nowtime=' + new Date().getTime();
//后面传递一个随机参数,否则在IE7和火狐下,不刷新图片
}
</ script >
< body >
< img src = "imgcode.php" alt = "看不清楚,换一张" align = "absmiddle" style = "cursor: pointer;" onclick = "javascript:newgdcode(this,this.src);" />
< form method = "POST" name = "form1" action = "image.php" >
< input type = "text" name = "test" >
< br />
< input type = "submit" name = "submit" value = "提交" >
</ form >
</ body >
</ head >
</ html >
|
以上就是为大家介绍的php点击验证码即可刷新的全部代码,希望对大家的学习有所帮助。