<?php /** * Vcode (M,n,x,y) m number display size is n edge wide x Edge high Y * Self rewrite record session $code */ Session_Start (); Vcode (4, 15); 4 digits with a display size of 15 function Vcode ($num = 4, $size = $width = 0, $height = 0) { ! $width && $width = $num * $size * 4/5 + 5; ! $height && $height = $size + 10; Removed 0 1 O l etc $str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW"; $code = '; for ($i = 0; $i < $num; $i + +) { $code. = $str [Mt_rand (0, strlen ($str)-1)]; } Drawing images $im = Imagecreatetruecolor ($width, $height); Define the color you want to use $back _color = Imagecolorallocate ($im, 235, 236, 237); $boer _color = Imagecolorallocate ($im, 118, 151, 199); $text _color = imagecolorallocate ($im, Mt_rand (0), Mt_rand (0,), Mt_rand (0, 120)); Draw background Imagefilledrectangle ($im, 0, 0, $width, $height, $back _color); Draw a border Imagerectangle ($im, 0, 0, $width-1, $height-1, $boer _color); Draw Interference Line for ($i = 0; $i < 5; $i + +) { $font _color = imagecolorallocate ($im, Mt_rand (0, 255), Mt_rand (0, 255), Mt_rand (0, 255)); Imagearc ($im, Mt_rand (-$width, $width), Mt_rand (-$height, $height), Mt_rand ($width * 2), Mt_rand ($height * 2), M T_rand (0, 360), Mt_rand (0, 360), $font _color); } Draw the jamming point for ($i = 0; $i < $i + +) { $font _color = imagecolorallocate ($im, Mt_rand (0, 255), Mt_rand (0, 255), Mt_rand (0, 255)); Imagesetpixel ($im, Mt_rand (0, $width), Mt_rand (0, $height), $font _color); } Picture Verification Code @imagefttext ($im, $size, 0, 5, $size + 3, $text _color, ' C:\WINDOWS\FONTS\SIMSUN.TTC ', $code); $_session["Verifycode"]= $code; Header ("cache-control:max-age=1, s-maxage=1, No-cache, must-revalidate"); Header ("content-type:image/png;charset=gb2312"); Imagepng ($im); Imagedestroy ($im); } ?> |