php实现图片加法验证码

php 复制代码
<?php
/**
 * Created by PhpStorm.
 * User: finejade
 * Date: 2023-10-19
 * Time: 11:07
 */
session_start(); // 启动Session
require_once('common.php');
session_start();
/*定义头文件为图片*/
header("Content-type: image/png");
/*生成验证码*/
/*创建图片设置字体颜色*/
$w = 70;
$h = 25;
$im = imagecreate($w, $h);
$red = imagecolorallocate($im, 255, 255, 255);
$white = imagecolorallocate($im, 255, 255, 255);
/*随机生成两个数字*/
$num1 = rand(1, 20);
$num2 = rand(1, 20);
$_SESSION ["captcha"] = $num1 + $num2;
/*设置图片背景颜色*/
$gray = imagecolorallocate($im, 118, 151, 199);
$black = imagecolorallocate($im, mt_rand(0, 100), mt_rand(0, 100), mt_rand(0, 100));
/*创建图片背景*/
imagefilledrectangle($im, 0, 0, 100, 24, $black);
/*在画布上随机生成大量点*/
for ($i = 0; $i < 80; $i++) {
    imagesetpixel($im, rand(0, $w), rand(0, $h), $gray);
}
/*将计算验证码写入到图片中*/
imagestring($im, 5, 5, 4, $num1, $red);
imagestring($im, 5, 30, 3, "+", $red);
imagestring($im, 5, 45, 4, $num2, $red);
imagestring($im, 5, 70, 3, "=", $red);
imagestring($im, 5, 80, 2, "?", $white);
/*输出图片*/
imagepng($im);
imagedestroy($im);

代码中校验

php 复制代码
	session_start();
    $captcha = isset($_POST['captcha']) ? $_POST['captcha'] : '';
     if ($_SESSION ["captcha"] != $captcha) {
            return error('图形验证码不正确');
        }

前端代码

html 复制代码
<img src="captcha.php" width="70" height="30"  id="valid-img" title="点击再换一张" class="vail_img" alt="验证码图片"/>
js 复制代码
    $("#valid-img").click(function () {
        $(this)[0].src ='captcha.php?'+Math.random();
    })
相关推荐
坚定学代码4 分钟前
static在c++中的使用
开发语言·c++
Ivanqhz1 小时前
图是“拓扑 + 类型 + 形状“的世界
算法·决策树·机器学习·php·集成学习
云雀衔光1 小时前
Java Spring AI MCP:在 Spring 里把 AI 接上你的业务系统
java·开发语言·人工智能·后端·测试工具·spring
重生之小比特1 小时前
【Java SE】数据类型与变量
java·开发语言·python
Yeniden1 小时前
Java 后端从零到企业级:第1篇 Java 基础语法——变量、数据类型与运算符
java·开发语言·apache
WeiXin_DZbishe1 小时前
基于springboot大学生提问箱系统-计算机毕设【课程设计】72593
javascript·vue.js·spring boot·vscode·python·node.js·php
luj_17681 小时前
罚球线右移破防新策略
c语言·开发语言·网络·经验分享·算法
legendary_1631 小时前
PD‑SINK芯片在无协议后端负载中的工程应用
c语言·开发语言·人工智能·智能手机·计算机外设
Nuanyt1 小时前
JVM常见核心知识梳理02 类加载 字节码技术 双亲委派 Java内存模型 JMM 并发底层 volatile synchronized 常见排障与调优工具
java·开发语言·jvm
liliangcsdn2 小时前
IC计算-前向/远期收益计算和代码示例
开发语言·python·pandas