免费注册 查看新帖 |

Chinaunix

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

我做的登录验证码,大家觉得好的就顶一下! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-19 16:37 |只看该作者 |倒序浏览
我做的登录验证码,大家觉得好的就顶一下!

如果还有更好或优化的请指点!
<?
//img.php
session_start();
//生成四位随机整数验证码
mt_srand((double)microtime()*1000000);
$AuthNum = mt_rand();
if($AuthNum<1000){$AuthNum *= 1000;}
$AuthNum = substr(strrev($AuthNum),-4);
session_register('AuthNum');
$_SESSION['AuthNum'] = md5($AuthNum);
Header("Content-type:image/png";
$im = ImageCreate(40,1;
$black = ImageColorAllocate($im,0,0,0);
$white = ImageColorAllocate($im,0,255,0);
$white2 = ImageColorAllocate($im,255,255,255);

//将四位整数验证码绘入图片
//位置交错
for ($i = 0; $i < 4; $i++) {
        if ($i%2 == 0){$top = 1;}else{$top = 3;}
        imagestring($im, 5, 10*$i+1, $top, substr($AuthNum,$i,1), $white);
}

//加入干扰象素线
//ImageLine($im,0,11,40,6,$white2);
//加入干扰象素点
for($i=0;$i<150;$i++){ imagesetpixel($im, rand()%70 , rand()%30 , $white2); }
ImagePng($im);
ImageDestroy($im);

/*
登陆表单用
<FORM METHOD=POST ACTION="ii.php">
<input type=text name=Number maxlength=4>
<a href="login.htm" title="点击更新验证数字"><img src="img.php" border="0" align="absmiddle" ></a>
<INPUT TYPE="submit" name="sub">
</FORM>
验证时用
if(empty($_POST["Number"]) || md5($_POST['Number']) <> $_SESSION['AuthNum']){  echo '<script>   alert("验证码有误!";   location.replace ("index.php"   </script>';   exit(); }
session_unregister('AuthNum');
unset($_SESSION['AuthNum']);
*/
?>

img.rar

913 Bytes, 下载次数: 395

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2006-04-19 17:14 |只看该作者
这代码看起来好眼熟

论坛徽章:
0
3 [报告]
发表于 2006-04-20 08:30 |只看该作者
原帖由 夜猫子 于 2006-4-19 17:14 发表
这代码看起来好眼熟


天下代码是一家,要是asm就不熟了

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2006-04-20 09:48 |只看该作者
原帖由 夜猫子 于 2006-4-19 17:14 发表
这代码看起来好眼熟

太直白了.

此验证码很大众化.可用性强.
但是,没有质的技术改进.

论坛徽章:
0
5 [报告]
发表于 2006-04-20 10:27 |只看该作者

  1. <?php
  2. session_start();
  3. //生成四位随机整数验证码
  4. mt_srand((double)microtime()*1000000);
  5. $AuthNum = mt_rand();
  6. if($AuthNum<1000){$AuthNum *= 1000;}
  7. $AuthNum = substr(strrev($AuthNum),-4);
  8. session_register('AuthNum');
  9. $_SESSION['AuthNum'] = md5($AuthNum);
  10. Header("Content-type:image/png");
  11. $im = ImageCreate(40,18);
  12. $black = ImageColorAllocate($im,0,0,0);
  13. $white = ImageColorAllocate($im,0,255,0);
  14. $white2 = ImageColorAllocate($im,255,255,255);

  15. //将四位整数验证码绘入图片
  16. //位置交错
  17. for ($i = 0; $i < 4; $i++) {
  18.         if ($i%2 == 0){$top = 1;}else{$top = 3;}
  19.         imagestring($im, 5, 10*$i+1, $top, substr($AuthNum,$i,1), $white);
  20. }

  21. //加入干扰象素线
  22. //ImageLine($im,0,11,40,6,$white2);
  23. //加入干扰象素点
  24. for($i=0;$i<150;$i++){ imagesetpixel($im, rand()%70 , rand()%30 , $white2); }
  25. ImagePng($im);
  26. ImageDestroy($im);

  27. ?>
复制代码


怎地这个img.php在我这愣是不出图片?

3.gif (3.46 KB, 下载次数: 100)

3.gif

论坛徽章:
0
6 [报告]
发表于 2006-04-20 10:52 |只看该作者
原帖由 alinker 于 2006-4-20 10:27 发表
[code]
<?php
session_start();
//生成四位随机整数验证码
mt_srand((double)microtime()*1000000);
$AuthNum = mt_rand();
if($AuthNum<1000){$AuthNum *= 1000;}
$AuthNum = substr(strrev($AuthN ...


你搞错了!
应该是访问login.htm文件
重要的是要启用GD库
---------------------------------------------------------
文件login.htm是登录文件
登陆表单用
<FORM METHOD=POST ACTION="ii.php">
<input type=text name=Number maxlength=4>
<a href="login.htm" title="点击更新验证数字"><img src="img.php" border="0" align="absmiddle" ></a>
<INPUT TYPE="submit" name="sub">
</FORM>
----------------------------------------------------
img.php是图片生成文件

论坛徽章:
0
7 [报告]
发表于 2006-04-20 11:10 |只看该作者
原帖由 ljc_168 于 2006-4-20 10:52 发表


你搞错了!
应该是访问login.htm文件
重要的是要启用GD库
---------------------------------------------------------
文件login.htm是登录文件
登陆表单用
<FORM METHOD=POST ACTION="ii.php& ...



访问哪个文件没关系,图像出不了~

发现原来这几个绘图函数还需要GD库支持呀,是没GD库所致...

PHP真弱,什么都得安装库...

4.gif (3.88 KB, 下载次数: 100)

4.gif

论坛徽章:
0
8 [报告]
发表于 2006-04-20 20:13 |只看该作者
不错,支持。

论坛徽章:
0
9 [报告]
发表于 2006-04-20 23:19 |只看该作者
我本机有GD2库,只是不好看...还要改...

7.gif (3.72 KB, 下载次数: 87)

7.gif

论坛徽章:
0
10 [报告]
发表于 2006-04-21 08:11 |只看该作者

回复 9楼 alinker 的帖子

大家想一下怎样可优化地更好!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP