码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    代码中校验

    	session_start();
        $captcha = isset($_POST['captcha']) ? $_POST['captcha'] : '';
         if ($_SESSION ["captcha"] != $captcha) {
                return error('图形验证码不正确');
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    前端代码

    <img src="captcha.php" width="70" height="30"  id="valid-img" title="点击再换一张" class="vail_img" alt="验证码图片"/>
    
    • 1
        $("#valid-img").click(function () {
            $(this)[0].src ='captcha.php?'+Math.random();
        })
    
    • 1
    • 2
    • 3
  • 相关阅读:
    面试常问:为什么 Vite 速度比 Webpack 快?
    SpringBoot+Vue实现前后端分离的教学管理平台
    一文搞懂 Vue3 defineModel 双向绑定:告别繁琐代码!
    内省机制(操作javaBean的信息)
    Friedman检验和Nemenyi检验画图代码
    Word添加附件(附件图标被挡住的问题)
    Spring Boot、Spring Cloud 自定义配置文件(如何整合配置中心)
    vue3中函数必须有返回值么?
    Day31力扣打卡
    数据结构系列学习(八) - 链式队列(Chain_Queue)
  • 原文地址:https://blog.csdn.net/xxpxxpoo8/article/details/133931841
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号