问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

thinkphp 怎么修改默认验证码

发布网友 发布时间:2022-04-05 23:41

我来回答

1个回答

热心网友 时间:2022-04-06 01:10

修改 ThinkPHP 默认验证码类的字体及大小
是否感觉ThinkPHP中的默认生成的验证码太小了?修改验证码的大小后,发现字体大小跟位置 没变化,看上去感觉很不好,下面就来改改吧…
找到ThinkPHP框架目录下的Extend/Library/ORG/Util/Image.class.php类文件打开,找到 buildImageVerify方法,大概在371行开始,用以下代码替换掉以前的(改的东西并不多,只要 加上两行代码就可以了,但为了清楚那两行代码是加在哪贴出buildImageVerify的整个方法)

1 static function buildImageVerify($length=4, $mode=1, $type='png', $width=48, $height=22,$verifyName='verify') {
2 import('ORG.Util.String');
3 $randval = String::randString($length, $mode);
4 session($verifyName, md5($randval));
5 $width = ($length * 10 + 10) > $width ? $length * 10 + 10 : $width;
6 if ($type != 'gif' && function_exists('imagecreatetruecolor')) {
7 $im = imagecreatetruecolor($width, $height);
8 } else {
9 $im = imagecreate($width, $height);
10 }
11 $r = Array(225, 255, 255, 223);
12 $g = Array(225, 236, 237, 255);
13 $b = Array(225, 236, 166, 125);
14 $key = mt_rand(0, 3);
15
16 $backColor = imagecolorallocate($im, $r[$key], $g[$key], $b[$key]); //背景色(随机)
17 $borderColor = imagecolorallocate($im, 100, 100, 100); //边框色
18 imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backColor);
19 imagerectangle($im, 0, 0, $width - 1, $height - 1, $borderColor);
20 $stringColor = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));
21 // 干扰
22 for ($i = 0; $i < 10; $i++) {
23 imagearc($im, mt_rand(-10, $width), mt_rand(-10, $height), mt_rand(30, 300), mt_rand(20, 200), 55, 44, $stringColor);
24 }
25 for ($i = 0; $i < 25; $i++) {
26 imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $stringColor);
27 }
28 $fontPath=THINK_PATH."/Common/ERASDEMI.TTF"; //字体文件路径,可自行更改,我放在ThinkPHP目录下的Common目录里面
29 for ($i = 0; $i < $length; $i++) {
30 //imagestring($im, 5, $i * 18 + 5, mt_rand(1, 8), $randval{$i}, $stringColor); //这是默认的
31 imagettftext($im, 20, mt_rand(-30,30) , $i * 16 + 5, $height/1.4, $stringColor, $fontPath,$randval{$i}); //这个是新的,用imagettftext函数
32 }
33 Image::output($im, $type);
34 }
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
多少分能被泉州华光职业学院录取 宁夏大学的二学位有哪些呢? 小孩睡的卧室有什么禁忌 起诉女方不回家能离婚吗 鹅肉鸭肉哪个贵 孩子9岁,视力0.3,可采取哪些措施? 《神幻拍档》中那只人鱼叫什么名字?(最好详细点!) 江苏恩泰照明集团有限公司怎么样 win7便签怎么找到 哪个牌子的折刀最好 thinkphp手机短信验证码怎么处理 thinkphp 验证码问题 thinkphp中验证码怎么实现验证功能 thinkphp 验证码怎么调用 在Thinkphp中怎么做登陆的验证码 如何解决thinkphp5中验证码常见问题 ASP PHP JSP SQL都指的是什么啊,它们有什么区别呀? 做网站用PHP还是ASP有什么区别? asp和net还有PHP的区别是什么? ASP型空间跟PHP型空间什么区别? 用php和asp开发的网站有什么区别? 对于数据库,ASP和PHP有什么不同吗? 网页的类型asp,php他们有什么区别呀? 网站.php 与 .asp 有什么区别啊? php和asp有什么区别,感觉都是一样的,差不多 php与asp语言的区别:用什么语言进行网页开发最好 php与asp的区别 Asp网站与Php网站的区别在哪里?怎么区别? asp和.php网站的具体区别,各有何优点 php语言和asp语言有什么区别? thinkphp框架的验证码源码在哪里?请提供版本和对应位置谢谢 WampServer 中用thinkphp框架时 验证码无法显示 如何解决??? thinkphp怎样检验自己生成的验证码 thinkphp5 验证码怎么用 使用thinkPHP 验证码的注意事项? thinkphp如何获取session中的验证码 如何把Thinkphp的验证码单独使用 tp框架中 验证码session为空的原因 thinkphp 中如何判断验证码是否正确 laravel 使用all获取数据库数据的时候,怎么使用数据 laravel5 怎么获取数组形式的数据 为什么Laravel会成为最成功最流行的PHP框架 在laravel或者thinkphp中使用模型获取商品列表时怎么也获取到每条数据对应的分类 PHP的Laravel中的如何从视图中获取来自数据库中的信息并在控制器中获取 laravel数据库读写分离了,如何指定从写的数据库读取数据? python将字典的键和值对换后值重复怎么办 python为什么使用字典解析会出现值一样的结果 python的dic和set的key不可变还是不能重复啊如图 python字典中存在相同的key,如何把这个key对应的值依次输出? 我用Python写的,这里为什么不会循环测试字典里的键呢?