php生成简单的验证码代码
<?php session_start(); //验证码高宽 $verify_width = 150; $verify_height = 50; $verify_length = 4; //创建画布 $verify_img = imagecreatetruecolor($verify_width, $verify_height); //生成随机背景颜色 $bg_color = imagecolorallocate($verify_img, rand(0, 255), rand(0, 255), rand(0, 255)); //填充背景色 imagefill($verify_img, 0, 0, $bg_color); //绘制点 for ($i = 1; $i <= 20; $i++) { $color = imagecolorallocate($verify_img, rand(0, 255), rand(0, 255), rand(0, 255)); imagesetpixel($verify_img, rand(0, $verify_width), rand(0, $verify_height), $color); } //绘制线 for ($i = 1; $i <= 5; $i++) { $color = imagecolorallocate($verify_img, rand(0, 255), rand(0, 255), rand(0, 255)); imageline($verify_img, rand(0, $verify_width), rand(0, $verify_height), rand(0, $verify_width), rand(0, $verify_height), $color); } //绘制矩形 for ($i = 1; $i <= 3; $i++) { $color = imagecolorallocate($verify_img, rand(0, 255), rand(0, 255), rand(0, 255)); imagerectangle($verify_img, rand(0, $verify_width), rand(0, $verify_height), rand(0, $verify_width), rand(0, $verify_height), $color); } //绘制椭圆 for ($i = 1; $i <= 3; $i++) { $color = imagecolorallocate($verify_img, rand(0, 255), rand(0, 255), rand(0, 255)); imageellipse($verify_img, rand(0, $verify_width), rand(0, $verify_height), rand(0, $verify_width), rand(0, $verify_height), $color); } //生成随机字符串 $arr = range('a', 'z'); $str = implode('', $arr); $str2 = '1234567890' . $str . strtoupper($str); $str2 = str_shuffle($str2); $rand_str = substr($str2, 5, $verify_length); //存储验证码 $_SESSION['verify']['code'] = md5($rand_str); $_SESSION['verify']['time'] = time(); //在图片中写入文字 $color = imagecolorallocate($verify_img, rand(0, 255), rand(0, 255), rand(0, 255)); //imagestring($verify_img,100,0,0,$rand_str,$color); //验证码字体设置 $font_x = 10; $font_y = 45; $font_file = "font/msyh.ttc"; imagefttext($verify_img, 40, 0, $font_x, $font_y, $color, $font_file, $rand_str); //生成图片 header("Content-type:image/png"); imagepng($verify_img);
使用方法:
<div> <img src="verifyCode.php" width="40" > </div>