寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、Office办公、随笔等内容。

随机三位数相加减的php验证码程序

原先网上找了个只有加法的验证码程序修改为本博客的验证码,有一朋友他想要一个,其实好早前就给我说了,只是没找到他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);
?>

文章写得不错?我是土豪我要在线打赏!
在线打赏

昵称:

验证码:验证码

评论:

文章分类
系统
程序
数据
Office
随笔
热门文章
VB.net开发的word转pdf的小工具
使用python把word转成pdf
文章推荐
免责声明
关于博主
开篇第一章
随机推荐
access数据库密码破解太容易了。
2021年快年末了
今天将ubuntu12.04升级到13.04
也说艳照门事件
医生写的字为啥还是那么难认?
Google今天收录博客了
从游戏到团结合作
php SQL BETWEEN AND 查询日期范围。
Excel文件内容很少,但文件很大,打开很慢、很卡怎么办?
杭州惊现“一分男”,银行反复存取1分钱(转)
友情连接
春燕网络
谢润的博客
企安文档