寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、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
随笔
热门文章
请不要奇怪,为什么最近博客的文章是几年前的内容
Excel动态引用各表格指定单元格数据
开篇第一章
ubuntu24.04无法安装向日葵,提示依赖libgconf-2-4怎么办?
如何利用python修改文件的创建时间,修改时间,访问时间
发现一个好网站——春燕文档
ubuntu24.04安装网易云音乐
Ubuntu22.04中用thunar替换默认文件管理器,提示无法启动“TerminalEmulator“的首选应用程序
MySQL如何按每个分类查询10条数据,即MySQL如何每个分类查询10条数据
python读取旧的Excel文件的数据到新的Excel表中
文章推荐
免责声明
关于博主
开篇第一章
随机推荐
Google will say no to China because of hackers attack gmail?
爱因斯坦发明电灯?!
sql随机排序
输入法设置的时候提示"检测到不兼容的键盘驱动程序,该对话框已被停用?" 解决方法
PHP版OAuth认证协议中的HMACSHA1加密算法(签名方法)
批量设置连接在新窗口打开
word使用技巧,插入带圈的数字。
php SQL BETWEEN AND 查询日期范围。
从游戏到团结合作
QQ.exe - 无法找到组件:没有找到ComRes.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。
友情连接
春燕网络
谢润的博客