soarli

PHP实现验证码
<?php session_start(); function _code($_width,$_heigh...
扫描右侧二维码阅读全文
22
2021/06

PHP实现验证码

<?php

session_start();
function _code($_width,$_height){

    
}
// 随机码的个数
$_rnd_code = 4;


// 创建随机码
for ($i=0; $i < $_rnd_code; $i++) { 
    # code...

    $_nmsg .= dechex(mt_rand(0,15));


}

$_SESSION['code'] = $_nmsg;

// echo $_nmsg;

// 长和高
$_width = 75;
$_height = 25;

// 创建一张图像
$_img = imagecreatetruecolor($_width,$_height);

// 白色
$_white = imagecolorallocate($_img,255,255,255);

// 填充
imagefill($_img,0,0,$_white);

$_flag = false;
if ($_flag) {
    // 黑色边框
    $_black = imagecolorallocate($_img,0,0,0);
    // $_black = imagecolorallocate($_img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)); // 随机颜色的边框
    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 < 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++) { 
    imagestring($_img,mt_rand(3,5),$i * $_width/$_rnd_code+mt_rand(1,10),mt_rand(1,$_height/2),$_SESSION['code'][$i],$_black);
    imagecolorallocate($_img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));
}

// 输出图像 1.指定表头 2.生成图像
header('Content-Type:image/png');
imagepng($_img);

// 销毁图像
imagedestroy($_img);


?>
最后修改:2021 年 06 月 25 日 10 : 44 PM

发表评论