不言不语

您现在的位置是: 首页 >  PHP

PHP

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>



文章评论