寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、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
随笔
热门文章
请不要奇怪,为什么最近博客的文章是几年前的内容
开篇第一章
ubuntu24.04无法安装向日葵,提示依赖libgconf-2-4怎么办?
ubuntu24.04安装网易云音乐
Ubuntu22.04中用thunar替换默认文件管理器,提示无法启动“TerminalEmulator“的首选应用程序
MySQL如何按每个分类查询10条数据,即MySQL如何每个分类查询10条数据
python读取旧的Excel文件的数据到新的Excel表中
nginx+php如何EventStream流式数据传输
python读取文件夹下图片并生成pdf文件
文章推荐
免责声明
关于博主
开篇第一章
随机推荐
帮朋友诚聘php程序员
最近比较忙。。。
Excel文件内容很少,但文件很大,打开很慢怎么办?
Windows xp升级至windows 7,xp+win7双系统只为QQ概念版
ubuntu24.04无法安装向日葵,提示依赖libgconf-2-4怎么办?
腾讯云服务器快照恢复删除的数据
洗衣
Ubuntu22.04中用thunar替换默认文件管理器,提示无法启动“TerminalEmulator“的首选应用程序
php判断远程文件是否存在
为emlog增加一个日志列表插件
友情连接
春燕网络
谢润的博客