登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

樱之花

叶散的时候,你明白欢聚;花谢的时候,你明白青春.

 
 
 

日志

 
 
关于我

分类中“我的实验室”是我在日常工作中的一些知识总结,有些写的比较匆忙,可能大家在阅读时会产生困扰,后期有时间我会重新整理编辑,谢谢大家的到访,您们的支持是我前进的动力!

PHP的验证码  

2007-09-14 10:57:34|  分类: PHP开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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

三个页面:

post.php 提交页
pic.php 生成验证码图片
check.php 验证页

post.php

<form name="form1" method="post" action="check.php" onsubmit="return ChkForm();">
<input type="text" name="t_code"><img id="pic" src="pic.php"><input type="submit" value="提交">
</form>
<script language="javascript">
function ChkForm()
{
 if(form1.t_code.value=="")
 {
  alert("错误:请输入验证码!");
  //重新生成验证码
  document.all.pic.src = "pic.php";
  return false;
 }
}
</script>

pic.php

<?php
session_start();
//生成验证码图片
Header("Content-type: image/PNG");
srand((double)microtime()*1000000);
$im = imagecreate(62,20);
$black = ImageColorAllocate($im, 0,0,0);
$white =ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im,200,200,200);
imagefill($im,0,0,$gray);    //改了这里的参数
while(($authnum=rand()%100000)<10000);
if(!session_is_registered("session_codenum"))
{
 session_register("session_codenum");
}
$session_codenum = $authnum;
//将五位整数验证码绘入图片
imagestring($im, 5, 10, 3, $authnum, $black);
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);
?>

check.php

<?php
session_start();
if($_POST["t_code"] !="" and $_POST["t_code"] == $session_codenum)
{
 echo "验证成功!";
}
else
{
 echo "验证失败!"; 
}
session_unregister("session_codenum");
session_destroy();
?>

验证码似例图:

  评论这张
 
阅读(740)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018