本文实例为大家分享了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点击验证码即可刷新的全部代码,希望对大家的学习有所帮助。