温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何用php实现自动生成验证码

发布时间:2021-10-22 10:42:57 阅读:187 作者:iii 栏目:编程语言
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要介绍“如何用php实现自动生成验证码”,在日常操作中,相信很多人在如何用php实现自动生成验证码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用php实现自动生成验证码”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

具体实现代码:

新建一个cap_sz.php文件:

<?php
session_start(); //设置session,一定要在顶部
$width 150//设置图片宽为300像素
$height 40//设置图片高为40像素
$image imagecreatetruecolor($width$height); //设置验证码大小的函数
$bgcolor imagecolorallocate($image255255255); //验证码颜色RGB为(255,255,255)#ffffff
imagefill($image00$bgcolor); //区域填充
$cap_code "";
for($i=0;$i<4;$i++){
    $fontsize 7//设置字体大小
    $fontcolor imagecolorallocate($imagerand(0,120), rand(0,120), rand(0,120));
    //数字越大,颜色越浅,这里是深颜色0-120
    $fontcontent rand(0,9);
    $cap_code.=$fontcontent//.=连续定义变量
    $x = ($i*150/4)+rand(5,10);
    $y rand(5,10);
    //设置坐标
    imagestring($image$fontsize$x$y$fontcontent$fontcolor);
}
$_SESSION['code'] = $cap_code//存到session
//设置干扰元素,设置雪花点
for($i=0;$i<300;$i++){
    $inputcolor imagecolorallocate($imagerand(50,200), rand(20,200), rand(50,200));
    //设置颜色,20-200颜色比数字浅,不干扰阅读
    imagesetpixel($imagerand(1,149), rand(1,39), $inputcolor);
    //画一个单一像素的元素
}
//增加干扰元素,设置横线(先设置线的颜色,在设置横线)
for ($i=0;$i<4;$i++) {
    $linecolor imagecolorallocate($imagerand(20,220), rand(20,220),rand(20,220));
    //设置线的颜色
    imageline($imagerand(1,149), rand(1,39), rand(1,299), rand(1,149), $linecolor);
 
}
 
//因为有些浏览器,访问的content-type会是文本型(乱码),所以我们需要设置成图片的格式类型
header('Content-Type:image/png');
imagepng($image); //建立png函数
imagedestroy($image); //结束图形函数,消除$image

到此,关于“如何用php实现自动生成验证码”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://www.py.cn/php/jiaocheng/34457.html

php
AI

开发者交流群×