php生成带干扰的验证码程序

 代码如下 复制代码

<?php教程
/*
 * Created on 2011-3-11
 * Programmer : xiaoyao, QQ:1045195056
 验证通过判断输入值与$_SESSION['check_pic']值
 */
session_start();
 function RandAscii($number){//$number产生数字和字母个数
$arr=array('0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','w','v','u','x','y','z');
for ($i=1;$i<=$number;$i++)
{
$rand= $rand.$arr[rand(0,35)];
}
return $rand;
}
 $rand=RandAscii(4);

$_SESSION['check_pic']=$rand;//随机产生的四个数赋值session中,用于验证。
$x=80;
$y=24;
 $im=imagecreatetruecolor($x,$y);//创建图片
$bg=imagecolorallocate($im,255,255,255);//设置颜色背景
imagefill( $im,0,0,$bg);
$wh=imagecolorallocate($im,255,255,0);
$grey=imagecolorallocate($im,128,128,128);
$yellow=imagecolorallocate($im,255,255,0);
$red=imagecolorallocate($im,0,255,0);
$foregroundArr = array(imagecolorallocate($im, rand(0, 20), rand(0, 20), rand(0, 20)),
  imagecolorallocate($im, rand(0, 20), rand(0, 10), rand(245, 255)),
  imagecolorallocate($im, rand(245, 255), rand(0, 20), rand(0, 10)),
  imagecolorallocate($im, rand(245, 255), rand(0, 20), rand(245, 255))
 );//字颜色数组
 //画边框
 $border = imagecolorallocate($im, 133, 153, 193);
 imagerectangle($im, 0, 0, $x - 1, $y - 1, $border);

for($i=0;$i<10;$i++){        //画干扰线,10条
imageline($im,rand(0,60),2,rand(0,60),20,$yellow);

}
for($j=0;$j<100;$j++){
 imagesetpixel($im,rand()%76,rand()%20,$red);
}
//imagestring($im,6,15,8,$rand,$wh);//字体大小1-5
imagettftext($im, 14,rand(30, -30), 5, rand(15, 18) ,$foregroundArr[rand(0,3)], 'C:WindowsFontsArial.ttf',$rand[0]);
imagettftext($im, 14,rand(50, -50), 24, rand(15, 18),$foregroundArr[rand(0,3)], 'C:WindowsFontsArial.ttf',$rand[1]);
imagettftext($im, 14,rand(50, -50), 43, rand(15, 18) ,$foregroundArr[rand(0,3)], 'C:WindowsFontsArial.ttf',$rand[2]);
imagettftext($im, 14,rand(30, -30), 62, rand(15, 18),$foregroundArr[rand(0,3)], 'C:WindowsFontsArial.ttf',$rand[3]);

header("Content-type: image/jpeg");//输出图片
imagejpeg($im);
imagedestroy($im);
?>

调用方法

 代码如下 复制代码
<?php
/*
 * Created on 2011-3-11
 * Programmer : xiaoyao, QQ:1045195056
 验证通过判断输入值与$_SESSION['check_pic']值
 */
session_start();//开启session
if(isset($_POST['check']))
{
if($_POST['check'])
 {
if($_POST['check']==$_SESSION['check_pic'])
 {
 echo " 验证码正确".$_SESSION['check_pic'];
 }
else
 {
 echo " 验证码错误".$_SESSION['check_pic'];
 }
}
}
?>
<FORM METHOD=POST ACTION="">
<img src="index.php"><br>    <!----链接图片--->
<input type="text" name="check" >
<input type="submit" value="提交">
</FORM>

 

时间: 2024-10-30 07:33:03

php生成带干扰的验证码程序的相关文章

ASP生成彩色可变长验证码程序

程序|验证码 记得"想当年"某天上午在这里路过,看到一位朋友贴的自己写的验证码程序,虽然他的程序是黑白有杂点,但其实很容易被破解的,但却有不少人喜欢着...没办法,当天下午研究了一翻 BMP 图片,然后就写出了这些代码,只是当初没有公布,眼看今天这么多坏人乱在很多论坛上注册用户来发广告,所以才贴出来共享一下. 本验证码生成程序特点如下: 一.彩色: 二.BMP 图像色深为 16 位,生成的图片体积更小:(4位长的验证码只有几百字节) 三.长度可自定义:(1位至25位可固定设置,也可以自

ASP 生成 彩色 可变长 验证码程序

程序|验证码 记得"想当年"某天上午在这里路过,看到一位朋友贴的自己写的验证码程序,虽然他的程序是黑白有杂点,但其实很容易被破解的,但却有不少人喜欢着...没办法,当天下午研究了一翻 BMP 图片,然后就写出了这些代码,只是当初没有公布,眼看今天这么多坏人乱在很多论坛上注册用户来发广告,所以才贴出来共享一下. 本验证码生成程序特点如下: 一.彩色: 二.BMP 图像色深为 16 位,生成的图片体积更小:(4位长的验证码只有几百字节) 三.长度可自定义:(1位至25位可固定设置,也可以自

geany opencv-请问怎样配置geany的生成项,使之能生成带opencv头文件的程序?

问题描述 请问怎样配置geany的生成项,使之能生成带opencv头文件的程序? 请问geany该怎样配置能生成包含opencv头文件的程序? 解决方案 http://blog.sina.com.cn/s/blog_571f930501000bhf.html

【项目实战】---用户模块,验证码程序

伴着元旦的脚步,小编的项目跟随着冬的脚步,马不停蹄,小伙伴们都有这样的经验,在注册某个页面的时候,或者输入了好几次密码,但是都没有输对的时候,这个时候,需要输入验证码,那时年少,觉得,注册个网页为什么还要输入验证码呢,不是多此一举嘛,然后随着学习和项目实战的深入,逐渐认识到,验证码有着不可估量的作用. 首先,小编来介绍一下什么是验证码,验证码是一种区分用户是计算机还是人的公共全自动程序,可以防止,恶意破解密码,刷票,论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序包里破解方式进行不断的登

验证码程序Demo

       小伙伴都有这样的经历,册各种网站,总是输不对验证码,双十一那天狂买的小伙伴是不是对输入验证码有着不一样的感触呢,以前觉得验证码真是个麻烦鬼,一个不小心,一个眼拙,哎呦,没有输入正确,又是一阵子大眼瞪小眼,这个时候,突然想起做软件的不都是本着为人民服务的那颗滚烫的心么?怎么总让用户输入验证码,这不是给用户带来麻烦么?小编想应该没有哪个用户会愿意输入验证码,特别是对于视力不是太好的小伙伴,有时候很坑爹,明明记得是输对了,但是最后显示的是验证码输入错误,这是否跟咱们的软件为人民服务相违背

jsp验证码程序?

问题描述 高手们,谁知道验证码程序的代码,初学者,不会啊,发个模板look下吧!谢谢了!(用jsp写的啊!) 解决方案 解决方案二:这是一个四位数的验证码!!网上一大堆!!<%@pagecontentType="image/jpeg;charset=gb2312"import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"%><%!ColorgetRandColor(intfc,i

使用GD库生成带阴影文字的图片

这篇文章主要介绍了使用GD库生成带阴影文字的图片的方法,非常的细致,推荐给大家,需要的朋友可以参考下 最近使用GD库来进行微信公共账号的图片生成,研究了一下GD库文字阴影效果的生成同时也发现了GD库的强大. GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片. 在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等. GD库的安装什么的网上都有,现在很多虚拟空间也都支持,这里就不再赘述.

微信公众平台开发(83) 生成带参数二维码

本文介绍在微信公众平台上如何使用高级接口开发生成带参数二维码的功能.   一.场景二维码 为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口.使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送. 目前有2种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,最大为1800秒,但能够生成较多数量,后者无过期时间,数量较少(目前参数只支持1--100000).两种二维码分别适用于帐号绑定.用户来源统计等场景. 用户扫描带场景值二维码时,可能推送

php 中文与英文验证码程序代码

//英文验证码相对简单,不要作hex处理,直接用色彩值就OK了.如果 session_start(); function rand_create() {     //通知浏览器将要输出PNG图片     Header("Content-type: image/PNG");     //准备好随机数发生器种子      srand((double)microtime()*1000000);     //准备图片的相关参数       $im = imagecreate(62,22);