php技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > PHP编程 > php技巧 > php生成随机验证码图片

php生成随机验证码图片的示例代码

作者:祈愿lucky

这篇文章主要介绍了php生成随机验证码图片的示例代码,结合实例形式分析了php生成随机验证码图片的实现方法与相关操作注意事项,文中有详细的代码示例,需要的朋友可以参考下

1,CaptchaPicture.php用于生成画布,然后在画布上生成四位随机验证码

<?php
session_start();
header("Content-type:image/png");   //创建图像的格式
$image_width=76;                           //设置图像的宽度
$image_height=40;                          //设置图像的高度
$length=4;                                 //字符串长度为4
//除去0,2,o,l容易混淆的字符
$str="23456789abcdefghijkmnopqrstuvwxyzABCDEFGHIJKMNOPQRSRUVWXYZ";
$code='';
for($i=0;$i<$length;$i++){
    $code.=$str[mt_rand(0,strlen($str))-1];  //从字符串中随机选择
}
$_SESSION['verify']=$code;                              //从获取到的随机书验证码写入到Session变量中
$image=imagecreate($image_width,$image_height);          //创建一个画布
imagecolorallocate($image,25,255,255);   //设置画布的颜色
For($i=0;$i<strlen($_SESSION['verify']);$i++){    //循环读取Session变量中的验证码
    $font = mt_rand(3,5);  //设置随机的字体
    $x=mt_rand(1,8)+$image_width*$i/4;        //设置随机字符所在位置的x坐标
    $y=mt_rand(8,$image_height/4);            //设置随机字符所在位置的y坐标
    //设置字符颜色
    $color = imagecolorallocate($image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));
    imagestring($image,$font,$x,$y,$_SESSION['verify'][$i],$color);    //水平输出字符
}
//绘制干扰元素点
$pixel=30;
$black = imagecolorallocate($image,0,0,0);
for($i=0;$i<$pixel;$i++){
    imagesetpixel($image,mt_rand(0,$image_width-1),mt_rand(0,$image_height-1),$black);
}
imagepng($image);  //生成png格式的图像
imagedestroy($image);  //释放图片资源
?>

2,SubmitVerify.php用于做一个简单的测试,验证验证码功能是否正常

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="CheckLogin.php" method="post">
    <div class="verify">
        <input type="text" id="verify" name="verify" class="input" placeholder="验证码">
        <a>
            <img src="CaptchPicture.php" onclick="this.src=this.src+'?'+Math.random()">   //单击验证码生成新的验证码
        </a>
    </div>
<button type="submit">提交</button>
</form>
</body>
</html>

3,CheckLogin.php用于验证提交后是否能接受到传递的信息,以及判断输入的验证码和生成的验证码是否一致

<?php
session_start();
$checks = $_POST["verify"];   //获取表单提交的验证码(用户输入的验证码)
if ($checks=="") {
    echo "<script>alert('验证码不能为空');
window.location.href='SubmitVerify.php';</script>";
}
    if ($checks==$_SESSION["verify"]){            //这个获取的是系统随机生成的验证码
        echo "<script>alert('登录成功');</script>";
    }else{
        echo "<script>alert('你输入的验证码不正确!')
window.location.href='SubmitVerify.php'
</script>";
    }

到此这篇关于php生成随机验证码图片的示例代码的文章就介绍到这了,更多相关php生成随机验证码图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文