|
/**
* Vcode (M,N,X,Y) m digital display size n edge width x Edge height y
* Rewrite the recording session yourself $code
*/
Session_Start ();
Vcode (4, 15); 4 digits with a display size of 15
function Vcode ($num = 4, $size = A, $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 colors 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, 120), Mt_rand (0, +), Mt_rand (0,));
Painting background
Imagefilledrectangle ($im, 0, 0, $width, $height, $back _color);
Draw Border
Imagerectangle ($im, 0, 0, $width-1, $height-1, $boer _color);
Draw interference Lines
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, Mt_rand), (0), $font _color);
}
Draw interference points
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);
}
Draw 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);
}
?>
|