Home  >  Article  >  Backend Development  >  PHP generates website verification code with snowflake background_PHP tutorial

PHP generates website verification code with snowflake background_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 14:52:21967browse

The following is the quoted content:






//Check the verification code
if(isset($HTTP_POST_VARS["sub"])):
if($HTTP_POST_VARS["number"] != $HTTP_SESSION_VARS[login_check_number] || empty($HTTP_POST_VARS["number"])){
echo "The check code is incorrect!" ;
}else{
echo "Verification code passed!";
}
endif;
show_source('test.php');
//Source code of the above page


//The following is the source code for generating verification code
show_source('YanZhengMa.php');
?>
session_start();
session_register("login_check_number");
//I saw the verification code effect on chianren last night, so I thought about it and used PHP’s GD library to complete a similar function
//Generate the background first, then put the generated verification code
$img_height=120; //First define the length and width of the image
$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")); //Generate a 4-digit random number and put it into the session
//Who can add something that can generate letters and numbers at the same time? ? ----Complete by sports98

$aimg = imageCreate($img_height,$img_width); //Generate image
ImageColorAllocate($aimg, 255,255,255); //The background color of the picture, the first time ImageColorAllocate defines the color, PHP considers it as the background color
$black = ImageColorAllocate($aimg, 0,0,0); //Define the required black
ImageRectangle($aimg,0,0,$img_height-1,$img_width-1,$black);//First create a black rectangle to surround the image

//It’s time to generate the snowflake background, which is actually to generate some symbols on the picture
for ($i=1; $i<=100; $i++) { //Test with 100 first
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, you see, it’s not actually a snowflake, it’s just an * sign. In order to make them look "messy and colorful", you have to use random numbers for their position, color, and even size when generating them one by one. This can be done with rand() or mt_rand.
}

//The background is generated above, now it’s time to put the generated random numbers. The principle is similar to the above. Random numbers are placed one by one, and their positions, sizes, and colors are all random numbers~~
//In order to distinguish it from the background, the color here should not exceed 200, and the color above should not be less than 200
for ($i=0;$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 an image instead of text
ImagePng($aimg); //Generate png format. . . Hehe, the effect is quite similar. . .
ImageDestroy($aimg);
}

?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/371610.htmlTechArticle以下为引用的内容: ?session_start();? FORM METHOD=POST ACTION= input type=text name=number maxlength=4img src=YanZhengMa.php?act=init INPUT TYPE=submit name=sub /FORM ? //检...
Statement:
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