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();
}
?>
- python验证码处理教程(python简单验证码识别的实现方法)
- 生成随机数javascript(JavaScript实现随机生成验证码及校验)
- canvas技术开发(用canvas显示验证码的实现)
- dedecms无缩略图怎么设置(DEDECMS转移data目录后 验证码不显示解决办法)
- python复杂的验证码处理(Python 通过打码平台实现验证码的实现)
- laravel验证码依赖(laravel5.2表单验证,并显示错误信息的实例)
- vue验证码(vue_drf实现短信验证码)
- python opencv 标记目标(使用Python的OpenCV模块识别滑动验证码的缺口推荐)
- php 模拟登录验证码demo(PHP 模拟登陆功能实例详解)
- dedecms搜索功能怎么设置详细(取消dedecms 留言簿的验证码的方法)
- php验证码思路(PHP实现字母数字混合验证码功能)
- python识别验证码教程(Python3.5 + sklearn利用SVM自动识别字母验证码方法示例)
- dedecms验证码识别(dedecms 软件下载频道防盗链php代码)
- dedecms安全设置(织梦dedecms站点data目录位置变动调整验证码不显示的解决办法)
- 织梦v5.7首页二维码怎么修改(织梦dedecms登录管理后台总是验证码错误的解决方案)
- php验证码图解(php/JS实现的生成随机密码验证码功能示例)
- 数学语文题目(语文的数学题)
- 香蕉(香蕉三种人不宜吃)
- 没钱可以快乐吗(没钱也能快乐吗)
- 快乐是什么(快乐就是)
- 东南亚有哪个国家(东南亚有哪个国家最发达)
- 东南亚安全吗(好不好挣钱)
热门推荐
- python中的变量与变量类型(Python变量类型知识点总结)
- 云服务器安全么(云服务器如何识别真假)
- css渐变色动画(详解CSS背景渐变图片transtion过渡效果技巧)
- docker 无法启动(Docker 常见问题解决)
- python配合docker(Docker构建python Flask+ nginx+uwsgi容器)
- thinkphp5怎么设置当前的模块(thinkPHP5.1框架中Request类四种调用方式示例)
- css导航栏字怎么分开设置(纯CSS实现导航栏Tab切换效果)
- 何谓SQLSERVER参数嗅探问题(何谓SQLSERVER参数嗅探问题)
- 存储过程中如何使用事务
- ASP.NET windows服务调试
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9