PHP验证码程序:session生成图片

2013 年 7 月 1 日5520

PHP验证码程序:session生成图片

Author:Flymorn Source:飘易博客

Categories:PHP编程 PostTime:2008-4-28 11:38:37

正 文:

昨天捣鼓了一下PHP验证码并生成图片程序,采用了session识别,稍微改进了一下目前网络上流传的PHP验证码,加入杂点,数字颜色随机显示,控制4位数字显示;话不多说了,程序如下,分享出来。效果图如下:

PHP验证码程序:session生成图片

新建yz.php验证码生成文件:注意:以下代码需要打开php的GD库,修改php.in文件的配置,把已经注释掉的行之前的分号取消即可:extension=php_gd2.dll。

<?
session_start();
//生成验证码图片
Header("Content-type:image/PNG");
$im=imagecreate(44,18);
$back=ImageColorAllocate($im,245,245,245);
imagefill($im,0,0,$back);//背景srand((double)microtime()*1000000);
//生成4位数字
for($i=0;$i<4;$i++){
$font=ImageColorAllocate($im,rand(100,255),rand(0,100),rand(100,255));
$authnum=rand(1,9);
$vcodes.=$authnum;
imagestring($im,5,2+$i*10,1,$authnum,$font);
}for($i=0;$i<100;$i++)//加入干扰象素
{
$randcolor=ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im,rand()%70,rand()%30,$randcolor);
}
ImagePNG($im);
ImageDestroy($im);$_SESSION['VCODE']=$vcodes;
?>

到具体调用的地方,用这样的形式:<imgsrc="/yz.php"align="absmiddle"/>就可以了;验证的时候验证session:$_SESSION['VCODE']的值就可以了。还可以对以上代码稍微改进,改成两个数字相加求和的形式,效果可以参见《ASP生成Bmp图片验证码:数字相加求和》。ps:2010.4.20更新:PHP的更高级的验证码移步这里看:随机扭曲、旋转、变形(仿Google验证码)的php验证码。

作者:Flymorn

来源:飘易博客

版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

Tag:浏览(次)

上一篇:Google PR更新了,五一节快乐

下一篇:google adsense出现找女朋友的广告

24条评论 “PHP验证码程序:session生成图片”

1 小舟

2008-4-28 23:05:24

PHP一点都不懂啊,汗

2 不错

2008-10-22 15:49:11

用上了,session_start();真麻烦,不过也解决了。

3 ha

2008-12-1 21:45:01

好!谢谢!

4 鬼武者

2009-2-18 21:52:19

站长好厉害啊!崇拜你!

5 心风

2009-3-4 18:13:36

找了许久终于发现个能用的。感谢。好好研究。

6 华晨

2009-8-23 13:06:18

学习了,拿回去研究

7 小七

2009-8-24 15:03:13

Linux下怎么不能正常显示!!!?求教了1

8 ghb

2009-9-2 15:17:45

这个不显示嘛!

9 叶子

2009-11-5 11:10:41

谢谢,很好用。

10 sky

2009-11-16 12:07:59

为什么显示不出来

11 mynameinnon

2009-12-19 13:33:22

图片是PNG格式的,换个格式就可以显示了

12 啊~

2010-1-25 15:35:56

我弄出来发现SESSION存的是上一个session期的值

13 turismochina

2010-2-8 22:13:31

下载了..谢谢http://http://www.zjjv.com///

14 萝卜

2010-3-21 9:52:38

下载去研究一下

15 jackbauer

2010-5-24 0:44:37

博主可否详细告知php验证码的知识啊,不胜感激。。bauerctu@vip.qq.com

16 dk79999

2010-11-7 20:58:25

不错支持楼主,用上了效果很好

17 cnpottery.com

2011-2-9 15:25:01

一直在找可用的验证码,可惜这个没有安全性

18 TonyLevid

2011-5-9 11:35:52

Tony’simgBorn,php图像生成类,多功能验证码,缩略图,水印.
我最近写的,已经封装好,比较安全

19 FASTOREE

2011-5-17 18:42:06

搞定了不用传值。直接调用就对了

20 luckday

2011-9-21 17:41:27

代码有误,第14行$vcodes.=$authnum;应该改为:$vcodes=$authnum;否则显示不出来的

21 luckday

2011-9-21 21:15:24

我这边测试时要加一句:$vcodes="";否则$vcodes.=$authnum;这一句会出错

22 luckboy

2012-5-7 12:50:35

我发现最好用的验证码是皕应的http://http://www.zjjv.com//hcaptcha,还有动画的效果也不错,听说是最专业的验证码系统,呵呵,我的项目里有那个的情况感觉也不错,还挺稳定的

23 luckboy

2012-5-8 8:34:01

用皕应的hcaptcha验证码吧,

24 luckboy

2012-5-11 15:06:31

用皕应的HCaptcha吧,不用这么麻烦,安全,专业,毕竟是专门做这个的,我们项目用了这个感觉非常不错,推荐http://http://www.zjjv.com//

发表评论

名称(*必填)

邮件(选填)

网站(选填)

记住我,下次回复时不用重新输入个人信息

目 录

飘易搜索

最新文章

相关文章

随机文章

0 0