<?php Session_Start (); Session_register ("Login_check_number"); Last night saw the verification code effect on the Chianren, just consider it, using PHP's GD library to complete a similar function First genetic the background, and then put the generated verification into the stacking $img _height=120; First define the length and width of the picture $img _width=40; if ($HTTP _get_vars["act"]== "init") { Srand (Microtime () * 100000); After//php420, Srand is not necessary. For ($Tmpa =0 $Tmpa <4; $Tmpa + +) { $nmsg. =dechex (rand (0,15)); }//by Sports98 $HTTP _session_vars[login_check_number] = $nmsg; $HTTP _session_vars[login_check_number] = Strval (Mt_rand ("1111", "9999")); Generates a 4-bit random number and puts it in session Who can make the supplement, can generate letters and numbers at the same time?? ----finished by Sports98. $aimg = Imagecreate ($img _height, $img _width); Generate pictures Imagecolorallocate ($aimg, 255,255,255); Picture background, imagecolorallocate the 1th time to define color PHP is considered to be the background $black = Imagecolorallocate ($aimg, 0,0,0); Define the required Black Imagerectangle ($aimg, 0,0, $img _height-1, $img _width-1, $black);//A black rectangle to surround the picture //below this generates a snowflake background, which is actually generating some symbols on the picture for ($i =1; $i <=100; $i + +) { & nbsp Start with 100 Tests imagestring ($aimg, 1,mt_rand (1, $img _height), Mt_rand (1, $img _width), "*", Imagecolorallocate ($aimg, Mt_rand (200,255), Mt_rand (200,255), Mt_rand (200,255)); /ha, see it, in fact, is not a snowflake, is the generation of * No. In order for them to look "cluttered, 5-color, 6", they have to have their position, color, or even size randomly counted at 1 1, and rand () or mt_rand can do it. } With the background generated, it's time to put the generated random numbers up. The reason is similar to above, random number 1 1 places, at the same time let their position, size, color are used into random number ~ ~ In order to distinguish it from the background, the color here is not more than 200, the above is not less than 200 For ($i =0 $i <strlen ($HTTP _session_vars[login_check_number]); $i + +) { Imagestring ($aimg, Mt_rand (3,5), $i * $img _height/4+mt_rand (1,10), Mt_rand (1, $img _width/2), $HTTP _session_vars[login _check_number][$i],imagecolorallocate ($aimg, Mt_rand (0,100), Mt_rand (0,150), Mt_rand (0,200)); } Header ("Content-type:image/png"); Tell the browser that the following data is a picture, not a text display Imagepng ($AIMG); Generate PNG format. Imagedestroy ($AIMG); } ?> |