随机三位数相加减的php验证码程序
作者:寒川 发布于:2010-6-1 19:47 Tuesday 分类:网页编程
原先网上找了个只有加法的验证码程序修改为本博客的验证码,有一朋友他想要一个,其实好早前就给我说了,只是没找到他QQ号码,今天他上线发来消息,我发过去,由于此验证码需要修改博客程序才能正常使用,时隔太久,我都忘记需要修改哪儿了,自然他拿过去没能正常使用。晚饭后自己又写了一个验证码,实现三个数随机加减,感觉还挺好用的,现在贴出来分享。
<?php
/**
* 图片验证码生成
* copyright (c) 寒川 All Rights Reserved
* version 1.0
* URL: http://huikon.cn
*/
session_start();
function op()//随机输出运算符
{
$operations=array('+','-');
$i = mt_rand(0, count($operations) - 1);
$op = $operations[$i];
return $op;
}
function add($n1,$n2,$op)//计算
{
switch($op)
{
case '+':
$t=$n1+$n2;
break;
case '-':
$t=$n1-$n2;
break;
}
return $t;
}
$n =range(1,20);//建立数组
shuffle($n);//打乱
$op1=op();
$op2=op();
$expression = $n[1].$op1.$n[2].$op2.$n[3].'=?';//表达式
$total=add(add($n[1],$n[2],$op1),$n[3],$op2);//计算结果
$expression_len = strlen($expression);
$_SESSION['code'] =$total;
$img_width = 160;//图片宽度
$img_height = 30;//图片高度
$img = imageCreate($img_width, $img_height);
ImageColorAllocate($img, 255, 255, 255);//背景色
$white = ImageColorAllocate($img, mt_rand(30, 180), mt_rand(10, 100), mt_rand(40, 250));//文字颜色
$ix = mt_rand(0,10);//横坐标位置
$iy = mt_rand(0,10);//纵坐标位置
for ($i = 0; $i < $expression_len; $i++)
{
imageString($img, 5, $ix, $iy, $expression[$i], $white);
$ix += 14;
}
// 输出图片
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
imagepng($img);
imagedestroy($img);
?>
评论:
日志分类
最近日志
随机日志
最新评论
- CCC certification
对这块还真是不... - 那风筝
happy new year ! - Roy
你好, 交换个链... - 太阳城娱乐网
说实话,对钛白... - 卡特&&艾弗森
不错啊!!,过段... - 奇遇
沙发 - 寒川
@Mr.邱℡:现在可... - Mr.邱℡
曾经加过,失效... - 寒川
@欧盛网络:链接... - 欧盛网络
换个链接好不?...
日志档案
- 2011年11月(2)
- 2011年9月(1)
- 2011年8月(2)
- 2011年7月(2)
- 2011年5月(1)
- 2011年3月(3)
- 2011年2月(2)
- 2010年12月(1)
- 2010年11月(2)
- 2010年10月(3)
- 2010年9月(9)
- 2010年8月(8)
- 2010年7月(13)
- 2010年6月(18)
- 2010年5月(24)
- 2010年4月(10)
- 2010年3月(14)
- 2010年2月(6)
- 2010年1月(7)
- 2009年11月(2)
- 2009年10月(3)
- 2009年9月(3)
- 2009年8月(8)
- 2009年7月(15)
- 2009年6月(14)
- 2009年4月(2)
- 2008年12月(1)
- 2008年6月(1)
- 2008年5月(10)
- 2008年4月(9)
- 2008年3月(5)
- 2008年2月(2)
- 2008年1月(5)
- 2007年12月(4)
- 2006年9月(6)
- 2006年7月(1)



2010-12-02 18:53