Deprecated
: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in
/www/wwwroot/testblog.58heshihu.com/var/Widget/Archive.php
on line
1057
首页
关于
Search
1
给你10个市场数据调研报告的免费下载网站!以后竞品数据就从这里找!
182 阅读
2
php接口优化 使用curl_multi_init批量请求
144 阅读
3
《从菜鸟到大师之路 ElasticSearch 篇》
107 阅读
4
2024年备考系统架构设计师
104 阅读
5
PHP 文件I/O
92 阅读
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
登录
Search
标签搜索
php函数
php语法
性能优化
安全
错误和异常处理
问题
vue
Composer
Session
缓存
框架
Swoole
api
并发
异步
正则表达式
php-fpm
mysql 索引
开发规范
协程
dafenqi
累计撰写
786
篇文章
累计收到
28
条评论
首页
栏目
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
副业
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
页面
关于
搜索到
1
篇与
的结果
2023-08-07
超强php验证码升级版
超强php验证码升级版识别难度更大<?php function getCode($length = 32, $mode = 0) { switch ($mode) { case '1' : $str = '123456789'; break; case '2' : $str = 'abcdefghijklmnopqrstuvwxyz'; break; case '3' : $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; break; case '4' : $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; break; case '5' : $str = 'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'; break; case '6' : $str = 'abcdefghijklmnopqrstuvwxyz1234567890'; break; case '7' ://中文验证码 break; default : $str = 'ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789'; break; } $result = ''; for($i = 0; $i < $length; $i ++) { if ($mode == 7) { $str [$i] = chr ( mt_rand ( 176, 215 ) ) . chr ( mt_rand ( 161, 249 ) ); $str [$i] = iconv ( "GB2312", "UTF-8", $str [$i] ); //imagettftext是utf-8的,所以先转换下 $result .= $str [$i]; } else { $l = strlen ( $str ) - 1; $num = mt_rand ( 0, $l ); $result .= $str [$num]; } } return $result; } //建立验证图片 function createAuthNumImg($randStr, $fontName, $imgW = 100, $imgH = 40) { header ( "content-type: image/png" ); $image = imagecreate ( $imgW, $imgH ); $fontSize = mt_rand(17,20);//字号 //$green = imagecolorallocate($image,0x6b,0xc1,0x46); $gray = imagecolorallocate ( $image, 255, 255, 255 ); //灰色 $red = imagecolorallocate ( $image, 255, 102, 204 );//粉色 $blue = imagecolorallocate($image,0x53,0x68,0xbd); $colors = array($red, $gray, $blue); $color_b = imagecolorallocate ( $image, 0, 0, 0 ); //黑色 $color_d = imagecolorallocate ( $image,98,178, 28 ); //绿色 $color_e = imagecolorallocate ( $image,38,98, 223 ); //蓝色 $color_c = imagecolorallocate ( $image,255,0, 0 ); //红色 $color_f = imagecolorallocate ( $image,128,0, 255 ); //紫色 $color_g = imagecolorallocate ( $image,0,128, 128 ); // $color = array($color_b, $color_c, $color_d,$color_e); shuffle($color); $colorrnd=imagecolorallocate ( $image,mt_rand(0,255),mt_rand(0,255), mt_rand(0,255) ); for($i = 0; $i < 1000; $i ++) { //绘背景干扰点 //imagesetpixel ( $image, mt_rand ( 0, $imgW ), mt_rand ( 0, $imgH ), $colors[rand(0,count($colors)-1)]); } imagerectangle ( $image, 0, 0, $imgW - 1, $imgH - 1, $color_b );//绘制边框 $str1=substr($randStr,0,1); $str2=substr($randStr,1,1); $str3=substr($randStr,2,1); $str4=substr($randStr,3,1); $range=mt_rand(-20,20); //imagettftext ( $image, $fontSize, 5, 3, 25, $color_b, $fontName, $randStr);///将验证字符绘入图片 字符旋转 for($i=1;$i<=4;$i++) { $p=$i-1; $str=$randStr["$p"]; //imagettftext ( $image, mt_rand(17,20), mt_rand(-20,20), $i*12, mt_rand(20,25), $color[mt_rand(0,count($color)-1)], $fontName, $str);///将验证字符绘入图片 字符旋转 imagettftext ( $image, mt_rand(17,20), mt_rand(-20,20), $i*12, mt_rand(20,25), $color[$i-1], $fontName, $str);///将验证字符绘入图片 字符旋转 } //imagettftext ( $image, mt_rand(17,20), mt_rand(-20,20), mt_rand(2,5), mt_rand(20,25), $color_b, $fontName, $str1);///将验证字符绘入图片 字符旋转 //imagettftext ( $image, mt_rand(17,20), mt_rand(-20,20), mt_rand(16,18), mt_rand(20,25), $color_c, $fontName, $str2);///将验证字符绘入图片 字符旋转 //imagettftext ( $image, mt_rand(17,20), mt_rand(-20,20), mt_rand(28,30), mt_rand(20,25), $color_d, $fontName, $str3);///将验证字符绘入图片 字符旋转 //imagettftext ( $image, mt_rand(17,20), mt_rand(-20,20), mt_rand(36,38), mt_rand(20,25), $color_e, $fontName, $str4);///将验证字符绘入图片 字符旋转 for($i=0; $i<4; $i++){ //绘背景干扰线 //imageline($image, mt_rand(0,5), mt_rand(6,18), mt_rand(65,$imgW), mt_rand(6,$imgH), $colorrnd);//一条干扰线 $h=30; $h1=rand(-5,5); $h2=rand(-1,1); $w2=rand(10,15); $h3=rand(4,6); $w=75; for($i=-$w/2;$i<$w/2;$i=$i+0.1) { $y=$h/$h3*sin($i/$w2)+$h/2+$h1; imagesetpixel($image,$i+$w/2,$y,$color[$p]); $h2!=0?imagesetpixel($image,$i+$w/2,$y+$h2,$color[$p]):null; } } imagepng ( $image ); imagedestroy ( $image ); } session_start (); $verifyCode = GetCode ( 4 ); $_SESSION ['VERIFY_CODE'] = $verifyCode ; createAuthNumImg ( $verifyCode, "font.ttf", 75, 30); //字体存放路径,如果你没有文件就去C:\WINDOWS\Fonts文件中找一个吧。 /** 问答模式 $a=GetCode(2,1); $b=GetCode(1,1); $passPort = $a."+".$b."=?"; $verifyCode = $a+$b; $_SESSION ['VERIFY_CODE'] = $verifyCode ; createAuthNumImg ( $passPort, "font.ttf", 75, 30); */ ?>
2023年08月07日
9 阅读
0 评论
0 点赞