Home > Backend Development > PHP Tutorial > Implementation of PHP verification code function

Implementation of PHP verification code function

巴扎黑
Release: 2016-11-23 13:32:12
Original
900 people have browsed it

/**

*Generate verification code image

*/

public function actionVerfiycode() {

Header ( "Content-type: image/gif" );

$border = 0; //Whether you want a border 1 yes: 0 no

$how = 4; //Verification code digits

$w = $how * 15; //Picture width

$h = 20; //Picture height

$fontsize = 5; //Font size

$alpha = "abcdefghijkmnopqrstuvwxyz"; //Verification code content 1: letters

$number = "0123456789"; //Verification code content 2: numbers

$randcode = ""; //Verification code string initialization

srand ( ( double ) microtime () * 1000000 ); //Initialize random number seed

$im = ImageCreate ( $w, $h ); //Create verification image

$bgcolor = ImageColorAllocate ( $im, 255, 255, 255 ); //Set the background color

ImageFill ( $im, 0, 0, $bgcolor ); // Fill the background color

if ($border) {

$black = ImageColorAllocate ( $im, 0, 0, 0 ); //Set the border color

ImageRectangle ( $im, 0, 0, $w - 1, $h - 1, $black ); //Draw the border

}

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

$alpha_or_number = mt_rand (0, 1); //Letters or numbers

$str = $alpha_or_number ? $alpha : $number;

$which = mt_rand ( 0, strlen ( $str ) - 1 ); // Which character to take

$code = substr ( $str, $which, 1 ); // Take the character

$j = ! $i ? 4 : $j + 15; //Draw character position

$color3 = ImageColorAllocate ( $im, mt_rand ( 0, 100 ), mt_rand ( 0, 100 ), mt_rand ( 0, 100 ) ); // Character color will be drawn

ImageChar ( $im , $fontsize, $j, 3, $code, $color3 ); //Draw characters

$randcode .= $code; //Add the verification code string bit by bit

}

for($i = 0; $i < 5; $i ++) //Draw background interference lines

{

$color1 = ImageColorAllocate ( $im, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) ); //Interference line color

ImageArc ( $im, mt_rand ( - 5, $w ), mt_rand ( - 5, $h ), mt_rand ( 20, 300 ), mt_rand ( 20, 200 ), 55, 44, $color1 ); //Interference line

}

for($i = 0; $i < $how * 40; $i ++) //Draw background interference points

{

$color2 = ImageColorAllocate ( $im, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) ); //Interference point color

ImageSetPixel ( $im, mt_rand ( 0, $w ), mt_rand ( 0 , $h ), $color2 ); //Interference point

}

$session=new CHttpSession;

$session->open();

Yii::app()->session-> add('randcode',$randcode);

/*End of drawing*/

Imagegif ($im);

ImageDestroy ($im);

/*End of drawing*/

}


Related labels:
php
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template