专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » php验证码:PHP实现验证码一法 »正文

php验证码:PHP实现验证码一法

来源: 发布时间:星期一, 2009年1月12日 浏览:11次 评论:0
  前段时间看了些有关验证码文章就是将串随机产生数字或符号生成幅图片图片里加上些干扰象素(防止OCR)由用户肉眼识别其中验证码信息输入表单提交网站WebSite验证验证成功后才能使用某项功能

  有篇文章也简单介绍了实现思路方法如下:

  代码:

<?php
/*
* Filename: authpage.php
* Author: hutuworm
* Date: 2003-04-28
* @Copyleft hutuworm.org
*/
  
srand((double)microtime*1000000);
  
//验证用户输入是否和验证码
(is($HTTP_POST_VARS['authinput']))
{
(strcmp($HTTP_POST_VARS['authnum'],$HTTP_POST_VARS['authinput'])0)
echo "验证成功!";

echo "验证失败!";
}
  
//生成新 4位整数验证码
while(($authnum=rand%10000)<1000);
?>
<form action=authpage.php method=post>
<table>
请输入验证码:<input type=text name=authinput style="width: 80px"><br>
<input type=submit name="验证" value="提交验证码">
<input type=hidden name=authnum value=<? echo $authnum; ?>>
<img src=authimg.php?authnum=<? echo $authnum; ?>>
</table>
</form> <?php
/*
* Filename: authimg.php
* Author: hutuworm
* Date: 2003-04-28
* @Copyleft hutuworm.org
*/
  
//生成验证码图片
Header("Content-type: image/PNG");
srand((double)microtime*1000000);
$im = imagecreate(58,28);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200);
imagefill($im,68,30,$gray);
  
//将 4位整数验证码绘入图片
image($im, 5, 10, 8, $HTTP_GET_VARS['authnum'], $black);
  
for($i=0;$i<50;$i) //加入干扰象素
{
imagepixel($im, rand%70 , rand%30 , $black);
}
  
ImagePNG($im);
ImageDestroy($im);
  ?>


  这段已经基本上实现了验证码生成和校验功能但是文章作者不知道为什么却将验证码内容显示在表单里了这样只是限制了用户必须输入验证码对恶意却没有任何防范作用可以说是在难为人而不是防范攻击

  不过还好根据原作者思路我们可以将验证串保存在session里这样才具有安全性

  代码如下:

//file:authform.php
<script language="javascript">
function check{
(document.forms[0].num.value''){
alert("请输入验证码");
false;
exit;
}
true;
}
</script>
<form action=authpage.php method=post _disibledevent=$num && $num<>""){
echo "验证成功";
}{
echo "验证失败";
}
?>




  写这篇文章我也是很郁闷心情在google用“验证码+php”搜索到只有那篇文章就是找不出个实用点没办法虽然外语水平还是忍痛用了全英文搜索找到了了不知道哪个国家员写段代码我把变量换成国人容易看懂形式这就是我做很希望下次用中文也能搜索出点有深度文章教程不是说提倡资源共享么……



相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: