This article introduces you to a very good php program for generating verification codes. First, when the user requests HTTP, the server creates a unique sessionid. This is the session ID, and then starts the GD library or imagemagick. These drawing tools write random characters generated by the program into a picture, then display it to the client, and then the user inputs and submits the data. Then our program saves the generated verification in the session for comparison, thus completing the verification code. generated and verified.
•Create a new PHP file captcha_code_file.php
The code is as follows | Copy code | ||||
session_start(); //Define the length & width of the verification code displayed in the front desk $image_width = 120; $image_height = 40; $characters_on_image = 6; $font = './monofont.ttf'; //The characters that can be used in the CAPTCHA code. //avoid confusing characters (l 1 and i for example) $possible_letters = '23456789bcdfghjkmnpqrstvwxyz'; $random_dots = 10; $random_lines = 30; $captcha_text_color="0x142864"; $captcha_noice_color = "0x142864"; //Define the string to generate the verification code $code = ''; $i = 0; while ($i < $characters_on_image) { $code .= substr($possible_letters, mt_rand(0, strlen($possible_letters)-1), 1); $i++; }<🎜> <🎜>$font_size = $image_height * 0.75; $image = @imagecreate($image_width, $image_height);<🎜> <🎜>/* setting the background, text and noise colors here */ $background_color = imagecolorallocate($image, 255, 255, 255);<🎜> <🎜>$arr_text_color = hexrgb($captcha_text_color); $text_color = imagecolorallocate($image, $arr_text_color['red'], $arr_text_color['green'], $arr_text_color['blue']);<🎜> <🎜>$arr_noice_color = hexrgb($captcha_noice_color); $image_noise_color = imagecolorallocate($image, $arr_noice_color['red'], $arr_noice_color['green'], $arr_noice_color['blue']);<🎜> <🎜>/* generating the dots randomly in background */ for( $i=0; $i<$random_dots; $i++ ) { imagefilledellipse($image, mt_rand(0,$image_width), mt_rand(0,$image_height), 2, 3, $image_noise_color); }<🎜> <🎜>/* generating lines randomly in background of image */ for( $i=0; $i<$random_lines; $i++ ) { imageline($image, mt_rand(0,$image_width), mt_rand(0,$image_height), mt_rand(0,$image_width), mt_rand(0,$image_height), $image_noise_color); }<🎜> <🎜>/* create a text box and add 6 letters code in it */ $textbox = imagettfbbox($font_size, 0, $font, $code); $x = ($image_width - $textbox[4])/2; $y = ($image_height - $textbox[5])/2; imagettftext($image, $font_size, 0, $x, $y, $text_color, $font, $code);<🎜> <🎜>/* Show captcha image in the page html page */ header('Content-Type: image/jpeg');// defining the image type to be shown in browser widow imagejpeg($image);//showing the image imagedestroy($image);//destroying the image instance //Set up session and do verification $_SESSION['6_letters_code'] = $code;<🎜> <🎜>function hexrgb ($hexstr) { $int = hexdec($hexstr);<🎜> <🎜> return array("red" => 0xFF & ($int >> 0x10), "green" => 0xFF & ($int >> 0x8), "blue" => 0xFF & $int); } |
Calling the page to display the verification code page index.php
The code is as follows
|
Copy code | ||||