PHP生成随机图形验证码,点击实现切换
2022-05-31PHP
/*
* 为什么循环0-15的数字
* 因为要实现最简单的字母和数字混搭
* 16进制0-9 a-f
* dechex 十进制转换为16进制
* 创建一个四位的验证码.
* $nmsg. 将每次循环的值累计起来
* $num 生成几位数的验证码
*/
一、PHP生成随机验证码
/*
* 为什么循环0-15的数字
* 因为要实现最简单的字母和数字混搭
* 16进制0-9 a-f
* dechex 十进制转换为16进制
* 创建一个四位的验证码.
* $nmsg. 将每次循环的值累计起来
* $num 生成几位数的验证码
*/
function createCode($num){
$nmsg = '';
for($i=0;$i<$num;$i++){
$nmsg .= dechex(mt_rand(0,15));
}
// 将字母转化成大写,实现用户无论输入大小写字母都能验证成功
$nmsg = strtolower($nmsg);
//验证码数组准备完成,开始绘图
ob_clean();
//设定标头.告诉浏览器你要生成的MIME类型
header('Content-type:image/png');
//创建一个图形区域.赋值给资源句柄
$im=imagecreatetruecolor(75,25);
//在空白的图像区域绘制填充背景
$blue=imagecolorallocate($im,0,102,255); //颜色1 背景
$white=imagecolorallocate($im,255,255,255); //颜色2 文字
imagefill($im,0,0,$blue); //填充颜色
//生成文本信息.将验证码的字符串写入图片.
imagestring($im,5,18,5,$nmsg,$white);
//输出最终图形
imagepng($im);
//清除占用的资源
imagedestroy($im);
//选择 Session,把生成的随机验证码存入session中
session_start();
$_SESSION["verification"] = md5($nmsg);
}
二、前面页面引用
<img id="checkpic" onclick="changeCode()" src="PHP实现验证码路径" style="width: 80px;heigth:50px;" />
三、javascript 实现点击切换
<script type="text/javascript">
function changeCode(){
// 加 Math.random() 的作用的改变url,实现验证码切换
document.getElementById('checkpic').src="HP实现验证码路径&rand="+Math.random();
}
</script>
很赞哦! ()
