免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1816 | 回复: 1
打印 上一主题 下一主题

用PHP实现验证码功能 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-28 21:29 |只看该作者 |倒序浏览
用PHP实现验证码功能

作者:hutuworm


??目前,不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了
验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,
图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输
入表单提交网站验证,验证成功后才能使用某项功能。

??我们这里展示了如何编写PHP程序实现验证码功能:

??代码一:

  1.     <?
  2.         /*
  3.          *   Filename:         authpage.php
  4.          *   Author:        hutuworm
  5.          *   Date:        2003-04-28
  6.          *   @Copyleft         hutuworm.org
  7.          */

  8.         srand((double)microtime()*1000000);

  9.         //验证用户输入是否和验证码一致
  10.         if(isset($HTTP_POST_VARS['authinput']))  
  11.         {
  12.                 if(strcmp($HTTP_POST_VARS['authnum'],$HTTP_POST_VARS['authinput'])==0)
  13.                         echo "验证成功!";
  14.                 else
  15.                         echo "验证失败!";
  16.         }
  17.        
  18.         //生成新的四位整数验证码
  19.         while(($authnum=rand()%10000)<1000);  
  20.     ?>;
  21.         <form action=authpage.php method=post>;
  22.         <table>;
  23.                 请输入验证码:<input type=text name=authinput style="width: 80px">;<br>;
  24.                 <input type=submit name="验证" value="提交验证码">;
  25.                 <input type=hidden name=authnum value=<? echo $authnum; ?>;>;
  26.                 <img src=authimg.php?authnum=<? echo $authnum; ?>;>;
  27.         </table>;
  28.         </form>;
复制代码


??代码二:

  1. ??<?
  2.         /*
  3.          *   Filename:         authimg.php
  4.          *   Author:        hutuworm
  5.          *   Date:        2003-04-28
  6.          *   @Copyleft         hutuworm.org
  7.          */

  8.         //生成验证码图片
  9.         Header("Content-type: image/PNG");  
  10.         srand((double)microtime()*1000000);
  11.         $im = imagecreate(58,28);
  12.         $black = ImageColorAllocate($im, 0,0,0);
  13.         $white = ImageColorAllocate($im, 255,255,255);
  14.         $gray = ImageColorAllocate($im, 200,200,200);
  15.         imagefill($im,68,30,$gray);

  16.         //将四位整数验证码绘入图片
  17.         imagestring($im, 5, 10, 8, $HTTP_GET_VARS['authnum'], $black);

  18.         for($i=0;$i<50;$i++)        //加入干扰象素
  19.         {
  20.                 imagesetpixel($im, rand()%70 , rand()%30 , $black);
  21.         }

  22.         ImagePNG($im);
  23.         ImageDestroy($im);
  24. ???>;
复制代码



??本文程序在Apache 2.0.45 + PHP 4.3.1环境下运行通过。

※ 糊涂馋寺:自由软件文档传染源  http://www.hutuworm.org

论坛徽章:
0
2 [报告]
发表于 2003-04-29 03:54 |只看该作者

用PHP实现验证码功能

Dear Sir,
I just test the code,
But can not show auth ok / auth fault message.
because the form is use post method
so HTTP_GET_VARS should is  HTTP_POST_VARS

Thanks.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP