|
<?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);
}
?>
|