寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、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);
?>

程序 2010-06-01 19:47:41 0 0 4551 验证码php编程加减法

昵称:

验证码:验证码

评论:

文章分类
系统
程序
数据
Office
随笔
热门文章
pdf、word、txt、excel等文档转flash(swf)软件—虚拟打印机FlashPaper
win10华硕fl5900u笔记本开机进入桌面后转圈卡死怎么办
PHP以Excel模板填充数据并生成新的Excel文件
PHP实现远程下载,并显示实时下载进度
记一次Seafile数据迁移
基于ThinkPHP6的API注释文档自动生成扩展
2020开局不顺
win10切换虚拟桌面
Win10更新后不显示文字
如何让电脑的多个声卡设备(蓝牙音响)同时输出声音
文章推荐
请不要奇怪,为什么最近博客的文章是几年前的内容
免责声明
关于博主
开篇第一章
随机推荐
爱因斯坦发明电灯?!
从游戏到团结合作
html读取xml并分页显示
老妈生日快乐
二级是狗屎
摸死你个性签名集合
简单而全面的sql查询教程(一)
php过滤html标签
QQ.exe - 无法找到组件:没有找到ComRes.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。
春节
友情连接
春燕网络