php验证安全码,PHP 高自定义性安全验证码的简单示例
搜索热词
感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。
经测试代码如下:
/**
* 安全验证码
*
* @param
* @author 编程之家 jb51.cc jb51.cc
**/
public function captcha(){
$font_dir = $_SERVER ["DOCUMENT_ROOT"] . "your_ttf_file.ttf"; // 字体库
$img_w = 58; // 设置图片宽
$img_h = 20; // 设置图片高
$font_size = 11; // 字体大小
$angle_l = -10; // 左偏角
$angle_r = 10; // 右偏角
$code_str = "ABCDEFGHJKLMNPQRSTUVWXYZ36";
$word_len = 4; // 验证码位数
$padding = 5; // 每两个文字之间间隔
$margin = 2; // 左侧边距
$base_line = 15; // 文字基线位置
$base_line_offset = 2; // 基准线偏移量
$pixel_num = 3; // 杂点数目基数
$pixel_color= 8; // 杂点只有 $pixel_color 种颜色 总的杂点数为$pixel_num*$pixel_color
$noise_font_size = 1; // 杂点字体大小
$session_key= "my_captcha"; //自定义session键名
header("Cache-Control: no-cache,must-revalidate");
header("Expires: Mon,26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
header("Cache-control: private");
header('Content-Type: image/png');
session_start();
$word = "";
$code_str_len = strlen($code_str) - 1;
for ($i = 0; $i < $word_len; $i++) {
$word.= $code_str[rand(0,$code_str_len)];
}
$_SESSION [$session_key] = strtolower($word);
$image = imagecreatetruecolor($img_w,$img_h);
imagefilledrectangle($image,$img_w - 1,$img_h - 1,imagecolorallocate($image,mt_rand(235,255),255)));
//绘制杂点
for($i = 0; $i < $pixel_color; $i++){
$noise_color = imagecolorallocate( $image,mt_rand(150,225),225) );
for($j = 0; $j < $pixel_num; $j++) {
imagestring( $image,$noise_font_size,mt_rand(-10,$img_w),$img_h),$code_str[mt_rand(0,$code_str_len)],$noise_color );
}
}
//绘制文字
for ($i = 0; $i < $word_len; ++$i) {
$color = imagecolorallocate($image,mt_rand(0,100),mt_rand(20,120),mt_rand(50,150));
imagettftext($image,$font_size,mt_rand($angle_l,$angle_r),$margin,mt_rand($base_line-$base_line_offset,$base_line+$base_line_offset),$color,$font_dir,mb_substr($word,$i,1,'utf-8'));
$margin += (imagefontwidth($font_size) + $padding);
}
imagepng($image);
imagedestroy($image);
exit;
}
/*** 来自编程之家 jb51.cc(jb51.cc) ***/
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
php验证安全码,PHP 高自定义性安全验证码的简单示例相关推荐
- 高德地图提示md5安全码未通过验证for android
经检查sha1与包名均没问题,查了好久都没发现而难题,最后用sha1安全码检查工具,检查了一下应用的安全码,这才发现是自己的应用的sha1和自己电脑的sha1不一样,太坑了,和我遇到同样问题的可以下载 ...
- 微软账号被锁定,无法发送安全码
微软账号被锁定,无法发送安全码 在进入微软账号的过程中,出现账号被锁定的提示,需要向手机发送安全码才可以解锁,但在发送代码时,出现下述问题,导致无法解锁. 解决办法 通过给微软官方发邮件,官方给出了解 ...
- iMeta期刊12名编委入选科睿唯安2021年度高被引学者
iMeta期刊12名编委入选高被引学者 科睿唯安2021年度"高被引科学家"名单出炉,详见:https://recognition.webofscience.com/awards/ ...
- Android仿淘宝支付安全码
最近项目中需要实现支付安全码 于是在网上看了有很多吧,后来自己整理了一下,效果如下 需要源码的直接加群@群主,然后出现一个咪咪眼的帅哥,那就是我啦!哈哈!是不是很骚!
- android手机如何接收google安全码
今天换浏览器登陆firebase,登陆谷歌账号的时候,要求输入安全码,获取了两次,手机都没有任何反应.解决办法如下: 1.首先确认在手机已经安装谷歌框架,谷歌服务.然后打开了梯子. 2.此时在手机设置 ...
- uniApp获取高德高德地图api发布版安全码SHA1
我在开发中使用到了高德地图api:基座测试时候可以正常使用,但是打包之后发现高德地图无法使用:所以为了解决uniApp打包后,高德地图无法使用的问题,我们需要发布版安全码SHA1来申请高德地图的key ...
- Google云端硬盘关联Colab时接收安全码问题
Google Colab,全名Colaboratory,是由谷歌提供的免费的云平台,可以使用keras.tensorflow等框架进行深度学习. 安装Colab 第一步肯定是连接微屁恩啦! 然后搜索云 ...
- android studio密钥库口令,Android应用开发Android Studio签名打包及根据keystore密钥获取SHA1安全码...
本文将带你了解Android应用开发Android Studio签名打包及根据keystore密钥获取SHA1安全码,希望本文对大家学Android有所帮助. " 一.签名打包两种方式 1. ...
- 烽火HG680-L_HG680-LV_hg680-lc_hg680-ly高安及非高安版本区分及刷机说明
烽火HG680-L_HG680-LV_hg680-lc_hg680-ly高安及非高安版本区分及刷机说明 峰火hg680-L分高安和非高安版本: 河北的100%是高安,其他地区基本是非高安: 高安又分S ...
最新文章
- 设计模式学习 之 单例模式
- Android开发之根据Service的生命周期特点后台连接网络下载图片(源代码分享)
- json格式的字符串转为json对象遇到特殊字符问题解决
- [120_移动开发Android]005_android开发之数据存储之文件操作
- python和c语言的对比_类C语言与Python负数除法求值间的差异
- nginx报错:nginx: [alert] could not open error log file: open() “/var/log/nginx/error.log“ failed (2: N
- 使用webpack打包ES6代码
- gcc_教程中的命令
- 【译】ASP.NET MVC 5 教程 - 4:添加模型
- matlab中变量类型
- vnc远程桌面很慢_vnc远程桌面-桌面空白解决方案
- MATLAB的m文件
- 基于Python的发票识别与机器学习(保姆式教程)
- mysql查询条件格式_条件格式
- 希尔贝壳参展世界人工智能大会 | WAIC 2021
- EV录屏怎么把自己的摄像头放进去,摄像头好的,但是人像很花,看不清人脸
- GW1NSR-LV4CQN48GC6/I5 FPGA呼吸灯
- DBSCAN聚类分析在图像分割的应用
- win10如何配置maven仓库
- 计算机电源5VSB只有3V,研华工控机接上电源后5vsb那颗灯闪烁是怎么回事
热门文章
- MySQL事务的提交
- html的input的id,请求[“inputId”]不能在cshtml上工作
- python oracle数据库开发_python连接Oracle数据库
- 蓝桥杯java第四届决赛第二题--连续奇数和
- Hibernate中的核心接口query接口用法
- 03-JDBC学习手册:JDBC中几个重要接口和异常处理
- 编程实现将rdd转换为dataframe:源文件内容如下(_大数据 什么是RDD?可以干什么?为什么要有RDD?...
- Linux之vim的使用
- KVM 安装windows 虚拟机
- Redhat 打开防火墙某个端口