怎么在PHP中使用GD库实现一个验证码功能

发布时间:2021-02-15 08:16:44

来源:亿速云

阅读:83

作者:Leah

本篇文章给大家分享的是有关怎么在PHP中使用GD库实现一个验证码功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

具体实现:<?php

/*PHP实现验证码*/

session_start();//开启会话

//创建画布

$image=imagecreatetruecolor(100,38);

//背景颜色

$bgcolor=imagecolorallocate($image,255,255,255);

imagefill($image,0,0,$bgcolor);

$captch_code='';//存储验证码

//随机选取4个数字

for($i=0;$i<4;$i++){

$fontsize=10;    //

$fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));//随机颜色

$fontcontent=rand(0,9);

$captch_code.=$fontcontent;

$x=($i*100/4)+rand(5,10);  //随机坐标

$y=rand(5,10);

imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);

}

/*//字母和数字混合验证码

for($i=0;$i<4;$i++) {

$fontsize = 10;    //

$fontcolor = imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120));//??????

$data = 'abcdefghijklmnopqrstuvwxyz1234567890';  //数据字典

$fontcontent = substr($data, rand(0, strlen($data)), 1);

$captch_code.=$fontcontent;

$x = ($i * 100 / 4) + rand(5, 10);

$y = rand(5, 10);

imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);

}*/

$_SESSION['code']=$captch_code;

//增加干扰点

for($i=0;$i<200;$i++){

$pointcolor=imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));

imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor);//

}

//增加干扰线

for($i=0;$i<3;$i++){

$linecolor=imagecolorallocate($image,rand(80,280),rand(80,220),rand(80,220));

imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);

}

//输出格式

header('content-type:image.png');

imagepng($image);

//销毁图片

imagedestroy($image);

实现表单的连接和“换一个”功能的实现:

" alt="验证码">

换一个

以上就是怎么在PHP中使用GD库实现一个验证码功能,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

php的验证码要gd库,怎么在PHP中使用GD库实现一个验证码功能相关推荐

  1. java使用外部库_在Java中使用外部库

    java使用外部库 Java附带了一组核心库,其中包括定义常用数据类型和相关行为的库,例如String或Date : 与主机操作系统进行交互的实用程序,例如System或File : 有用的子系统来管 ...

  2. ubuntu20.04安装librtmp库 并在QT5中引入librtmp库

    前言 音视频技术学习记录 一.ubuntu20.04安装librtmp库 1.安装相关依赖库 安装 openssl 和 zlib sudo apt-get install libssl-dev sud ...

  3. 明明已经安装了第三方库,但是Pycharm中却提示库不存在的解决办法

    明明之前已经安装了第三方库,但是运行代码时还是提示库不存在,那么此时就需要去在Pycharm中设置一下 使用Pycharm可以管理一些第三方库,方法如下 1.打开软件,通过路径[File]→[Sett ...

  4. python turtle库画图案-python中的turtle库绘制图形

    1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...

  5. python网络爬虫方向的第三方库_Python网络爬虫中常用第三方库总结

    python对于爬虫的编写已经是相当的友好了,不过除了利用requests库或者scrapy框架之外,有一些库还需要我们知道,以便于我们更熟练.便捷的完成目标数据的爬取,接下来我就总结一下我认为在爬虫 ...

  6. 查看python库的版本-python中查看第三方库的版本号

    (1)方法一 import scrapy scrapy.__version__ Out[13]: '1.5.1' (2)方法二 help(scrapy) Help on package scrapy: ...

  7. python库怎么绘画_python中的turtle库(图形绘画库)

    turtle绘图的基础知识: 1. 画布(canvas) 画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置. 设置画布大小 turtle.screensize(canvwid ...

  8. 在Linux中创建静态库和动态库 (转)

    我们通常把一些公用函数制作成函数库,供其它程序使用.函数库分为静态库和动态库两种.静态 库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库.动态库在程序编译时并不会被连接到目标代码中,而 ...

  9. 在Linux中创建静态库.a和动态库.so

    转自:http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421056.html 在Linux中创建静态库.a和动态库.so 我们通常把一些公用 ...

最新文章

  1. ​卷积层和分类层,哪个更重要?
  2. Python 从入门到精通:一个月就够了?真的能行嘛?
  3. No module named ‘prompt_toolkit.enums‘
  4. Perforce 使用说明
  5. signature=cc0735b80de74e294c47d2b8d527fd10,Fungal Transposable Elements
  6. 北京师范大学计算机应用基础考试,北京师范大学-计算机应用基础作业(一至九全套)...
  7. Linux IPC实践(2) --匿名PIPE
  8. Java 性能优化系列之4[Java性能调优工具]
  9. python定义模块结束语_python-模块定义、导入、优化
  10. Ingenious Lottery Tickets 模拟
  11. undefined symbol: PyFPE_jbuf
  12. 使用java,求100以内的质数(素数)
  13. NO.119 不懂语言代码,超级菜鸟的建站分享(二):界面设置。
  14. 八款PM常用〖项目管理〗工具
  15. java 设计模式 常用21种
  16. rsync - 客户端常用参数
  17. 三维场景中创建镜面反射效果(three.js实战9)
  18. JS对象中添加新的属性及修改字段名
  19. 【Photoshop 教程系列第 2 篇】如何将 PS 中字体单位由点改为像素
  20. 前端VUE面试题总结

热门文章

  1. MySQL下使用Inplace和Online方式创建索引的教程
  2. C# 请求接口返回中文乱码→???
  3. iOS开发Swift篇—(六)流程控制
  4. Delphi第三方组件安装DCU.PAS.DPK.BPL.ActiveX控件
  5. Quick-Cocos2d-x初学者游戏教程(二) -------------------- Quick内部的代码结构及相应的原理...
  6. 雪儿--北京欢迎你!!!
  7. SpringBoot 实战:如何从零开发 “淘宝”
  8. 极度舒适的 Python 入门教程,佩奇也能学会~
  9. python文件处理seek_python文件操作 seek(),tell()
  10. python 网络编程_Python网络编程(六)