本文实例讲述了PHP 图像处理与SESSION制作超简单验证码的方法。分享给大家供大家参考,具体如下:
验证码的实现
首先我们要清楚,无论是做什么东西,在做之前一定要有思路,譬如这个验证码里他有些什么,为了实现它我们该做些什么,怎么样去做。
这里我例举出几个点。
1.验证码肯定要有内容。
2.验证码里肯定要有干扰信息,就譬如,线条干扰和点点干扰。
那么为了实现他们我们该如何做呢?
第一步,创建一个名为captcha.php的文件
在里面输入
<"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 = "";//声明一个空变量,接受验证码内容并保存
这个时候,验证码的一些基本东西我们都完成了,定义了验证码的宽高,背景色验证码内容,验证码字体大小,和一个接受验证码的变量,就该做第二步了。
第二步,获取验证码内容
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.画线条 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相关内容感兴趣的读者可查看本站专题:《PHP图形与图片操作技巧汇总》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
更新日志
2024年11月29日
2024年11月29日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]