dedecms授权查询(解析dedeCMS验证码的实现代码)
dedecms授权查询
解析dedeCMS验证码的实现代码如下所示:
复制代码 代码如下:
<?php
$rndstring = '';
for($i=0; $i<4; $i++) $rndstring .= chr(mt_rand(65,90));
//如果支持GD,则绘图
if(function_exists("imagecreate"))
{
//Firefox部份情况会多次请求的问题,5秒内刷新页面将不改变session
$ntime = time();
if(empty($_SESSION['dd_ckstr_last']) || empty($_SESSION['dd_ckstr']) || ($ntime - $_SESSION['dd_ckstr_last'] > 5))
{
$_SESSION['dd_ckstr'] = strtolower($rndstring);
$_SESSION['dd_ckstr_last'] = $ntime;
}
$rndstring = $_SESSION['dd_ckstr'];
$rndcodelen = strlen($rndstring);
//创建图片,并设置背景色
$im = imagecreate(50,20);
ImageColorAllocate($im, 255,255,255);
//背景线
$lineColor1 = ImageColorAllocate($im,240,220,180);
$lineColor2 = ImageColorAllocate($im,250,250,170);
for($j=3;$j<=16;$j=$j+3)
{
imageline($im,2,$j,48,$j,$lineColor1);
}
for($j=2;$j<52;$j=$j+(mt_rand(3,6)))
{
imageline($im,$j,2,$j-6,18,$lineColor2);
}
//画边框
$bordercolor = ImageColorAllocate($im, 0x99,0x99,0x99);
imagerectangle($im, 0, 0, 49, 19, $bordercolor);
//输出文字
$fontColor = ImageColorAllocate($im, 48,61,50);
for($i=0;$i<$rndcodelen;$i++)
{
$bc = mt_rand(0,1);
$rndstring[$i] = strtoupper($rndstring[$i]);
imagestring($im, 5, $i*10+6, mt_rand(2,4), $rndstring[$i], $fontColor);
}
header("Pragma:no-cache/r/n");
header("Cache-Control:no-cache/r/n");
header("Expires:0/r/n");
//输出特定类型的图片格式,优先级为 gif -> jpg ->png
if(function_exists("imagejpeg"))
{
header("content-type:image/jpeg/r/n");
imagejpeg($im);
}
else
{
header("content-type:image/png/r/n");
imagepng($im);
}
ImageDestroy($im);
exit();
}
else
{
//不支持GD,只输出字母 ABCD
$_SESSION['dd_ckstr'] = "abcd";
$_SESSION['dd_ckstr_last'] = '';
header("content-type:image/jpeg/r/n");
header("Pragma:no-cache/r/n");
header("Cache-Control:no-cache/r/n");
header("Expires:0/r/n");
$fp = fopen("data/vdcode.jpg","r");
echo fread($fp,filesize("data/vdcode.jpg"));
fclose($fp);
exit();
}
?>
- thinkphp标签详解(thinkphp整合系列之极验滑动验证码geetest功能)
- 如何用jquery进行表单验证(jQuery实现发送验证码控制按钮禁用功能)
- php 模拟登录验证码demo(PHP 模拟登陆功能实例详解)
- dedecms安全验证(dede验证码错误 dede验证码一直提示错误的解决方法)
- php验证码实现过程(php伪静态验证码不显示的解决方案)
- vue查询条件生成工具(vue实现四级导航及验证码的方法实例)
- dedecms授权查询(解析dedeCMS验证码的实现代码)
- mysql获取随机数(MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法)
- dedecms后台内链如何制作(dedecms自定义表单增加验证码的方法分享)
- dedecms迁移data验证码不显示(dedecms织梦上传图片302Error错误的解决方法)
- python识别验证码教程(Python3.5 + sklearn利用SVM自动识别字母验证码方法示例)
- python常用的切片操作(使用python PIL库实现简单验证码的去噪方法步骤)
- canvas技术开发(用canvas显示验证码的实现)
- laravel验证码依赖(laravel5.2表单验证,并显示错误信息的实例)
- 织梦v5.7首页二维码怎么修改(织梦dedecms登录管理后台总是验证码错误的解决方案)
- 织梦dedecms教程(详解各种dedeCMS织梦后台登陆验证码错误或不显示解决方法大全)
- 魔兽世界 设计师爆料,原始版本并无PVP,跨阵营属于返璞归真(魔兽世界设计师爆料)
- 吐槽完《弧光大作战》之后,我们和设计师聊了聊魔兽首款手游的立项初衷和未来(吐槽完弧光大作战之后)
- 魔兽争霸3自定义战役少年杰雷 2(魔兽争霸3自定义战役少年杰雷)
- 今日菜价 芥兰涨幅最高 1.33 ,花菜降幅最高 3.10(今日菜价芥兰涨幅最高)
- 今日菜价 椰菜涨幅最高 3.25 ,水空心菜降幅最高 2.58(今日菜价椰菜涨幅最高)
- 今日菜价 红三鱼涨幅最高 4.41 ,黄鳝降幅最高 5.06(红三鱼涨幅最高)
热门推荐
- laravel框架如何查询空的信息(Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法)
- 纯css写三角形(老生常谈 使用 CSS 实现三角形的技巧多种方法)
- 在网页中嵌入视频
- html5自定义结构指令(浅析HTML5 meta viewport参数)
- 性能监视器中常用计数器
- thinkphp表单提交不到数据(ThinkPHP5.1表单令牌Token失效问题的解决)
- jmeter接口性能测试教程(Xmeter API接口测试工具使用方法解析)
- mysql底层原理是什么(MySQL 页完全指南—浅入深出页的原理)
- python搭建django框架(详解Python网络框架Django和Scrapy安装指南)
- php上传大文件教程(PHP实现带进度条的Ajax文件上传功能示例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9