以前总是觉得图片验证码很诡秘的,但是今天看了看网上的教程,发现并不像想象中那么难, PHP5 具体实现如下。createphoto.php文件用来生成图片验证码,并通过session向test.php传递验证码内容;而test.php则在表单中引用生成的图片和验证用户的输入。

代码实现(PHP5)

<?php
#createphoto.php
#启用session
session_start();
#生成4个随机字符
$ary = 'qwertyuiopasdfghjklzxcvbnm0123456789';
for ($i = 0; $i < 4; $i++) {$index = rand(0, 35);$rundstr .= $ary[$index];
}
#把随机数保存到session
$_SESSION[rundstr] = $rundstr;
#图片尺寸
$x_size = 100;
$y_size = 30;
#新建一个真彩色图像
$img = imagecreate($x_size, $y_size);
#生成各种颜色
imagecolorallocate($img, 230, 230, 230); #设置图片的背景色
$fontcolor = imagecolorallocate($img, 0, 0, 0); #生成字体的颜色
$pointcolor = imagecolorallocate($img, 0, 0, 0); #生成噪点的颜色
#添加200个噪点
for ($i = 0; $i < 200; $i++) {imagesetpixel($img, rand(0, $x_size), rand(0, $y_size), $pointcolor);
}
//添加5条干扰线
for ($i = 0; $i < 5; $i++) {$linecolor = imagecolorallocate($img, rand(0, 225), rand(0, 225), rand(0, 225)); #生成干扰线的颜色imageline($img, rand(0, 100), 0, rand(0, 100), rand(0, 30), $linecolor);
}
#绘图
imagestring($img, 6, rand(0, 30), rand(5, 12), $rundstr, $fontcolor);
//显示图片
header("Content_type:image/jpeg");
imagejpeg($img);
?>
<?php
#test.php
#启动session
session_start();
#验证
if ($_POST[inputvalue]) {if ($_POST[inputvalue] == $_SESSION[rundstr]) {echo "成功";} else {echo "失败";}
}
?>
<form action="" method="post"><input type="text" name="inputvalue" size="20"></input><img src=\'#\'" /img></br><input type="submit" name="submit" value="确定"></input>
</form>

运行效果
访问test.php,输入6q94,点击确定;

说明
1、首先要启动gd库,可通过WampServer(PHP -> PHP扩展 -> php_gd2),或修改 PHP.ini文件 (去掉extension=php_gd2.dll前的";"号);
2、imagecreate ( int x_size, int y_size ) // 创建图像,返回图像对象,x就是宽 ,y就是高;
3、imagecolorallocate ( resource image, int red, int green, int blue ) // 第一次调用是为图像设置颜色,返回颜色的值;
4、imagestring ( resource image, font, int x, int y, 内容 , 颜色 ) // 绘图;
5、rand( int x, int y ) // 生成随机数,范围[x , y]闭区间;
6、imagesetpixel ( resource image, int x, int y, int color ) // 画点,xy是点在图像中的坐标;
7、imageline ( resource image, int x1, int y1, int x2, int y2, int color ) // 画线,x1y1是起始点坐标,x2y2是终点坐标;
8、header("Content_type:image/jpeg") // 说明文件类型

9、imagejpeg($img) // 显示图片

本文出自 “清源教育” 博客,转载请注明此处,谢谢!

【代码】PHP5 怎样制作图片验证码相关推荐

  1. Python第三方库巧用,制作图片验证码只需三行代码

    现在验证码的种类真的是越来越多,短信验证码.语音验证码.图片验证码.滑块验证码 - 我们在 PC 的网页端或者手机上的 app 进行登录或者注册时,应该总会遇见图片验证码,比如下面这类: 上面这些图片 ...

  2. python 识别登陆验证码图片(完整代码)_Python 实现简单图片验证码登录

    如何实现,执行代码报错了 from PIL import Image from pytesseract import image_to_string, pytesseract pytesseract. ...

  3. 通过 html 制作图片验证码

    可以通过 html 的 canvas 标签通过 js 绘制所需要的图片验证码 效果图: 源代码如下 <!DOCTYPE html> <html> <!-- head -- ...

  4. python制做简单图片代码_Python简单的制作图片验证码

    -人人可以学Python-- 这里示范的验证码都是简单的,你也可以把字符扭曲 人人可以学Python.png Python第三方库无比强大,PIL 是python的一个d第三方图片处理模块,我们也可以 ...

  5. 前端验证码后端返回一个图片_Web后端开发(6)——简易图片验证码的制作

    大家在登录或注册某些网站的时候经常会看到一些随机的图片验证码,那么这些验证码到底是怎么制作的呢?下面我们就从最简单的制作方法中学一下验证码的制作过程. 创建图片对象 要制作图片验证码,首先要创建一个图 ...

  6. 登录注册 图片验证码生成

    登录注册时,需要添加图片验证码校验防止恶意攻击.步骤如下: 1.后台生成图片验证码流,并记录code值到Session或Redis 中 2.请求过来后,附带图片验证码,从session或redis中获 ...

  7. springboot添加图片验证码(拦截器)

    先说下验证码的最基本思路.首先在后端生成随机验证码,存入session.前端接收后端生成的验证码图片或随机字符,展示给用户.用户输入验证码,提交时发送到后台,与session中的验证码进行比较.下面代 ...

  8. php图形 验证码代码,PHP制作图形验证码代码分享,php图形验证码代码_PHP教程

    PHP制作图形验证码代码分享,php图形验证码代码 效果: myvcode.class.php:封装创建验证码的类 /* * file:myvcode.class.php * 验证码类,类名Vcode ...

  9. php推荐码生成,最新最全PHP生成制作验证码代码详解(推荐),验证码详解_PHP教程...

    最新最全PHP生成制作验证码代码详解(推荐),验证码详解 1.0 首先先看代码 好,现在结合以上代码,来分析分析以上用到的几个函数: ① imagecreatetruecolor(); imagecr ...

最新文章

  1. Android toolbar menu 字体点击样式
  2. 什么是Code Review 代码审查
  3. Environment.CurrentDirectory 的一个坑
  4. 【牛客 - 289H】约会(思维,数学,奇偶数,水题)
  5. Docker安装Kafka(docker-compose.yml)
  6. http 返回的状态码以及含义
  7. 转-由12306.cn谈谈网站性能技术
  8. 智能音箱扎堆的技术红海,Rokid 如何杀出一条血路?
  9. 苹果Mac 2D/3D数字雕刻软件:Pixologic Zbrush
  10. 32位x86处理器操作模式和寄存器简介
  11. python代码_Python代码的优化技巧
  12. kali Linux渗透测试教程.pdf
  13. 如何申请公网IP资源
  14. 计算机控制技术(本科生专业选修课) 期末考试总结
  15. 账户经常被盗号怎么办?防盗“黑科技”了解一下
  16. 我去!三面字节跳动,竟次次败,带薪摸鱼偷刷阿里老哥的面试宝典,成功上岸!
  17. buildroot rz sz 配置
  18. IE浏览器上不了网的原因
  19. oracle(知识点速查)
  20. 单片机复位和冷启动(掉电)的区别

热门文章

  1. SAP 成长型企业融资上市论坛(北京站)圆满落幕
  2. // Not quite a no-op; ensures volatile write semantics怎么理解
  3. BSCI验厂13个执行领域注意事项分享
  4. Nvidia3090显卡驱动+CUDA+cuDNN安装步骤
  5. 数据库E-R图基础概念
  6. 关于官方提供的mindspore镜像mindspore-modelzoo
  7. java铁傀儡,我的世界铁傀儡
  8. 开启NOTE新时代 七款Android记事本软件推荐
  9. ubuntu 允许ssh访问_Ubuntu开启远程SSH连接
  10. 将照片形式的纸质公章转化为电子公章(不需要下载ps)