PHP 图像处理与SESSION制作超简单验证码的方法示例

2025-05-27 0 29

本文实例讲述了PHP 图像处理与SESSION制作超简单验证码的方法。分享给大家供大家参考,具体如下:

验证码的实现

首先我们要清楚,无论是做什么东西,在做之前一定要有思路,譬如这个验证码里他有些什么,为了实现它我们该做些什么,怎么样去做。

这里我例举出几个点。

1.验证码肯定要有内容。
2.验证码里肯定要有干扰信息,就譬如,线条干扰和点点干扰。

那么为了实现他们我们该如何做呢?

第一步,创建一个名为captcha.php的文件

在里面输入

?

1

2

3

4

5

6

7

8

9
<?php

session_start();//开启会话

header("Content-type:image/png");//定义为图片

$im = imagecreatetruecolor(100,30);//创建一个画布的大小

$color = imagecolorallocate($im, 255, 255, 255);//填充背景颜色

imagefill($im,0,0,$color);//填充$color颜色于$im画板区域从左上角0,0开始

$content = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";//验证码内容

$fontsize = "6";//字体大小

$ragcha = "";//声明一个空变量,接受验证码内容并保存

这个时候,验证码的一些基本东西我们都完成了,定义了验证码的宽高,背景色验证码内容,验证码字体大小,和一个接受验证码的变量,就该做第二步了。

第二步,获取验证码内容

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15
for ($i=0; $i < 4; $i++) {

//截取字符串

$char = substr($content,rand(0,strlen($content)-1),1);

//把得到的内容输入到ragcha里

$ragcha = $ragcha.$char;

//设置x轴与y轴的坐标

$x = $i*(100/4) + rand(5,15);

$y = rand(5,10);

//设置验证码内容颜色

$fontcolor = imagecolorallocate($im,rand(0,120),rand(0,120),rand(0,120));

//输出

imagestring($im, $fontsize, $x, $y, $char, $fontcolor);

}

//保证验证码内容不丢失

$_SESSION["ragcha"] = $ragcha;

在这里我们设置了$i的变量不能大于四,然后用他乘以(100/4),保证他的的值不会大过100,再加上rand函数里随机抽取5-15里的数值,使其的x轴坐标范围保证在(5-90)之间,y轴的坐标保证在(5-10)之间,使其大概率的保证了内容显示的范围居中

第三步,设置干扰因素

我们要明白,在验证码里有什么干扰因素,再想办法把它呈现出来。如下

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16
//设置干扰因素

//1.画线条

for ($g=0; $g < 3; $g++) {

//设置线条颜色

$line = imagecolorallocate($im, rand(50,100), rand(50,100), rand(50,100));

//输出线条

imageline($im,rand(0,99),rand(0,19),rand(0,99),rand(0,19), $line);

}

//2.给背景加点点

for ($r=0; $r < 300; $r++) {

//设置点点颜色

$point = imagecolorallocate($im, rand(20,180), rand(20,180), rand(20,180));

//输出点点

imagesetpixel($im, rand(0,100), rand(0,30), $point);

}

imagepng($im);//输出整个图片

到这里,我们的验证码功能基本上已经实现的差不多了,内容获取到了,横线和点点等干扰因素也有了。如果需要添加到登录页面可自行发挥。

希望本文所述对大家PHP程序设计有所帮助。

原文链接:https://blog.csdn.net/weixin_44596681/article/details/88864395

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP 图像处理与SESSION制作超简单验证码的方法示例 https://www.kuaiidc.com/70991.html

相关文章

发表评论
暂无评论