<?php //randomly generate a 4-digit number validation code $num = ""; ; for ($i =0 $i <4; $i + +) { $num. = rand (0,9); } // 4-bit Authenticode can also generate directly with Rand (1000,9999)///write the generated captcha to session, and the Prepare validation page uses the Session_Start (); $_ session["Checknum"] = $num; //Create picture, define color value Header ("Content-type:image/png"); Srand (Double) microtime () *1000000); $im = imagecreate (60,20); $black = imagecolorallocate ($im, 0,0,0); $gray = imagecolorallocate ($im, 200,200,200); Imagefill ($im, 0,0, $gray); //Randomly draw two dashed lines, interfering $style = Array ($black, $black, $black, $black, $black, $gray, $gray, $gray, $gray, $gray); Imagesetstyle ($im, $style); $y 1=rand (0,20); $Y2=rand (0,20); $y 3=rand (0,20); $y 4=rand (0,20); Imageline ($im, 0, $y 1, $y 3, img_color_styled); Imageline ($im, 0, $y 2, $y 4, img_color_styled) //A large number of black dots randomly generated on the canvas, interfering; for ($i =0 $i <80; $i + +) { Imagesetpixel ($im, Rand (0,60), Rand (0,20), $black); } //Four digits are randomly displayed on the canvas, and the horizontal spacing and position of the characters are randomly generated by a certain range of fluctuations $strx =rand (3,8); for ($i =0 $i <4; $i + +) { $strpos =rand (1,6); imagestring ($im, 5, $strx, $strpos, substr ($num, $i, 1), $black); $strx +=rand (8,12); } Imagepng ($im); Imagedestroy ($im); ? |