php开发_图片验证码
项目结构:
提交表单:
校验正确:
校验错误:
===========================================================
代码部分:
===========================================================
yanzhengma.php
1 <?php 2 //验证码的制作 3 //1.生成4位的随机数 4 for($i=0;$i<4;$i++){ 5 $rand.=dechex(rand(1, 15)); 6 } 7 8 //2.创建图片 9 //创建一张图片 10 $image=imagecreatetruecolor(100, 30); 11 //背景颜色 12 $bg=imagecolorallocate($image, 0, 0, 0); 13 $te=imagecolorallocate($image, 255,255,255); 14 15 16 //划线 17 for($i=0;$i<4;$i++){ 18 $lineColor=imagecolorallocate($image, rand(20, 225), rand(20, 225), rand(20, 225)); 19 imageline($image, rand(0, 100), 0, 100,30, $lineColor); 20 } 21 //划点 22 for($i=0;$i<200;$i++){ 23 imagesetpixel($image, rand()%100, rand()%100, $lineColor); 24 } 25 //添加文字 26 //编码转换 27 $str=iconv("GBK", "UTF-8", "广州GZ"); 28 imagettftext($image, 12,11, 20, 20, $lineColor, 'simhei.ttf', $str); 29 30 //3.随机数写入图片$font=(1~6) 31 imagestring($image, rand(3, 6), rand(3, 70), rand(0, 16), $rand, $te); 32 33 //4.随机数保存在session中 34 //启动session 35 session_start(); 36 //把验证码放入session 37 $_SESSION[vilidationCode]=$rand; 38 39 40 header("Content-type: image/jpeg"); 41 imagejpeg($image); 42 ?>
form.php
1 <?php 2 3 session_start(); 4 5 if($_POST[yanzhengma]){ 6 7 if($_POST[yanzhengma]==$_SESSION[vilidationCode]){ 8 echo "你通过了验证!"; 9 }else{ 10 echo "你输入的验证码错误!"; 11 } 12 } 13 ?> 14 <form action="" method="post"><img src="yanzhengma.php"><br /> 15 <input type="text" name="yanzhengma" /><br /> 16 <input type="submit" value="submit" /></form>
注意啦:
在项目结构中的COURBD.TTF和simhei.ttf这两个是字体库
大家可以在自己电脑:C:\WINDOWS\Fonts 目录中找到
(大多数在这里,部分同志可能安装在其他目录,T_T)。
测试了一下下面的代码:
1 //添加文字 2 //编码转换 3 $str=iconv("GBK", "UTF-8", "广州GZ"); 4 imagettftext($image, 12,11, 20, 20, $lineColor, 'simhei.ttf', $str);
可以显示中文,但是如果是下面的代码:
1 //添加文字 2 //编码转换 3 $str=iconv("GBK", "UTF-8", "广州GZ"); 4 imagettftext($image, 12,11, 20, 20, $lineColor, 'COURBD.TTF', $str);
这时候,中文就不能显示啦,所以大家在使用字体库的时候还是要注意的!!
php开发_图片验证码相关推荐
- java自动识别图片验证码插件_JMeter开发插件——图片验证码识别
我们在性能测试中总会时不时地遭遇到来自于应用系统的各种阻碍,图片验证码就是一类最常见的束缚,登录或交易时需要按照图片中的内容输入正确的验证信息后,数据才可以提交成功,这使得许多性能测试工具只能望而却步 ...
- 使用.Net Core 2.1开发Captcha图片验证码服务
更新后续篇:Captcha服务(后续1) 使用.Net Core 2.1开发Captcha验证码服务 开发工具:Visual Studio 2017 15.7.3 开发平台:64位 Windows 1 ...
- Shiro安全框架(Shiro与SpringBoot整合开发)之图片验证码(五)
这篇博文主要讲解实现图片验证码的实现,之前已经将权限,认证,自带缓存,redis缓存,都实现了,现在我们就来了解一下简单的图片验证码的实现: 首先,我们要来修改一下登录的页面,login.jsp这个页 ...
- java如何缓存验证码图片_图片验证码概述及实现步骤
一. 图片验证码概述: 很多网站都有该实现 作用: 为了提高系统的安全性 有了验证码,我们就可以要求用户在输入用户名,密码等信息后,同时输入图片上的文字,用户提交后,系统会首先从session中提取刚 ...
- android 验证码图片识别_图片验证码的识别技术
这里有最简单的一类验证码:他们有固定的背景颜色,相同的字符颜色和字体,字符的坐标位置也是固定的. 对于这类验证码,我们只需要对每个数字进行采样,建立标准库,然后应用的时候一一对照标准库,就可以轻易做到 ...
- JAVA绘制图片原理_java开发_图片截取工具实现原理
先来看看效果: 测试一: 原图: 效果图: 测试二: 原图: 效果图: 代码部分: /** * */ package com.b510; import java.awt.rectangle; impo ...
- python神经网络库识别验证码_基于TensorFlow 使用卷积神经网络识别字符型图片验证码...
本项目使用卷积神经网络识别字符型图片验证码,其基于TensorFlow 框架.它封装了非常通用的校验.训练.验证.识别和调用 API,极大地减低了识别字符型验证码花费的时间和精力. 项目地址:http ...
- 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目
王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...
- 图片验证码和短信验证码开发
图片验证码和短信验证码开发 tip :前后端分离,先开发后端,后完善前端 一.图片验证码流程 1.引入captcha包放入utils 不是独立的第三方包放入utils,独立的包放入libs里面 cap ...
最新文章
- 线上java JVM问题排查
- 机器人流程自动化技术的新发展
- 常用的正则表达式的运用--学习笔记(二)
- C语言实现简单的电子通讯录2
- vue-cli起服务chrome不能打断点——每周汇总(第一周)
- http的“无连接”指的是_头条一面:HTTP协议无状态中的 quot;状态quot; 到底指的是什么?...
- sql中update多表处理
- (六)ModelSim 下载安装以及crack的注册
- 计算机Word2010中刷新键,Office2010常用快捷键汇总(最新整理)
- 看了B站上的这些Java视频,我飘了!
- 基于ssm的酒店客房管理系统(含数据库结构文档)
- Jointly Extracting Multiple Triplets with Multilayer Translation Constraints [论文研读]
- “携手共建互联网安全生态”研讨会在京召开
- 2017070506嵌入式开发系统概述和开发工具的使用
- 小米蓝牙耳机怎么串联,只有一边有声音
- 与北京相比较而言,杭州能不能挺进“一线”,还得看未来科技城---云城,第二机场入住云城周边是神助攻
- Linux——操作系统安装
- 解决Navicat1166错误
- 入坑 c计划 day 1
- 在FL Studio中如何制作人声切片(Vocal Chops)
热门文章
- 转义sed替换模式的字符串
- #39;git merge#39;和#39;git rebase#39;有什么区别?
- Gradle中的实现和编译之间有什么区别?
- pyinstaller安装_如何打包Python Web项目,实现免安装一键启动?
- 测试线程的状态(Java)
- Eigen教程(7)之归约、迭代器和广播
- access口 环路_利用STP解决二层环路、实现链路冗余-stp文件怎么打开
- linux下ssh/sftp配置和权限设置
- 巧技拾遗 | JavaScript 中 Array.every 和 Array.map 的巧妙结合
- Avro 序列化操作原理与应用