/**
* _code()是验证码函数
* @access public
* @param int $_width 表示验证码的长度
* @param int $_height 表示验证码的高度
* @param int $_rnd_code 表示验证码的位数
* @param bool $_flag 表示验证码是否需要边框
* @return void 这个函数执行后产生一个验证码
*/
function _code($_width = 75,$_height = 25,$_rnd_code = 4,$_flag = false){
// session_start();
$img = imagecreatetruecolor($_width, $_height);
$black = imagecolorallocate($img, 0x00, 0x00, 0x00);
$green = imagecolorallocate($img, 0x00, 0xFF, 0x00);
$white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
$red = imagecolorallocate($img, 0xFF, 0x00, 0x00);
imagefill($img,0,0,$white); //�����������֤��
$code = '';
srand(microtime()*100000);
for($i = 0; $i < 4; $i++) {
//$code .= rand(0,1)? rand(0,9): (rand(0,1)?strtoupper( dechex(rand(10,15)) ):strtolower(dechex(rand(10,15)) ));
//$code .= rand(0,9);
$code .= dechex(rand(0, 15));
}
$_SESSION['code'] = $code;
if (!$_flag){
imagerectangle($img, 0, 0, $_width-1, $_height-1, $black);
}
//随即画出6个线条
for ($i=0;$i<6;$i++) {
$_rnd_color = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
imageline($img,mt_rand(0,$_width),mt_rand(0,$_height),mt_rand(0,$_width),mt_rand(0,$_height),$_rnd_color);
}
//随即雪花
for ($i=0;$i<mt_rand(0,100);$i++) {
$_rnd_color = imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
imagestring($img,1,mt_rand(1,$_width),mt_rand(1,$_height),'*',$_rnd_color);
}
//绘制验证码
for ($i=0;$i<strlen($_SESSION['code']);$i++) {
$_rnd_color = imagecolorallocate($img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));
imagestring($img,5,$i*$_width/$_rnd_code+mt_rand(1,10),mt_rand(1,$_height/2),$_SESSION['code'][$i],$_rnd_color);
}
header('Content-Type:image/jpeg');
imagepng($img);
imagedestroy($img);
}
php验证码
最新推荐文章于 2024-07-19 17:19:27 发布