* ** Generate verification code Image * publicfunctionactionVerfiycode () {Header (& amp; quot; Content-type: imagegif & amp; quot;); $ border0; whether border 1 is required: 0 don't $ how4; number of digits of the verification code $ w $ how * 15; image width $ h20 ;... /**
* Generate verification code Image
*/
Public function actionVerfiycode (){
Header ("Content-type: image/gif ");
$ Border = 0; // whether the border is required; 1: 0: not required
$ How = 4; // Number of digits of the verification code
$ W = $ how * 15; // image width
$ H = 20; // Image height
$ Fontsize = 5; // font size
$ Alpha = "abcdefghijkmnopqrstuvwxyz"; // verification code content 1: letter
$ Number = "0123456789"; // verification code content 2: number
$ Randcode = ""; // verification code string initialization
Srand (double) microtime () * 1000000); // initialize the random number seed
$ Im = ImageCreate ($ w, $ h); // Create a verification image
$ Bgcolor = ImageColorAllocate ($ im, 255,255,255); // you can specify the background color.
ImageFill ($ im, 0, 0, $ bgcolor); // fill the background color
If ($ border ){
$ Black = ImageColorAllocate ($ im, 0, 0, 0); // you can specify the border color.
ImageRectangle ($ im, 0, 0, $ w-1, $ h-1, $ black); // draw a 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); // specify the character
$ Code = substr ($ str, $ which, 1); // Obtain the character
$ J =! $ I? 4: $ j + 15; // specifies the position of the painted character.
$ Color3 = ImageColorAllocate ($ im, mt_rand (0,100), mt_rand (0,100), mt_rand (0,100); // character color
ImageChar ($ im, $ fontsize, $ j, 3, $ code, $ color3); // draw characters
$ Randcode. = $ code; // add a verification code string to a bit by bit
}
For ($ I = 0; $ I <5; $ I ++) // draws the background interference line
{
$ 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 ++) // draws 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 );
/* Drawing ends */
Imagegif ($ im );
ImageDestroy ($ im );
/* Drawing ends */
}