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>
很赞哦! ()