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();
}
?>
- php验证码实现过程(php伪静态验证码不显示的解决方案)
- 宝塔面板服务器连接不上(宝塔面板后台登陆不显示验证码解决办法)
- vue验证码(vue_drf实现短信验证码)
- python常用的切片操作(使用python PIL库实现简单验证码的去噪方法步骤)
- python 验证码识别模块([机器视觉]使用python自动识别验证码详解)
- thinkphp标签详解(thinkphp整合系列之极验滑动验证码geetest功能)
- 如何用jquery进行表单验证(jQuery实现发送验证码控制按钮禁用功能)
- dedecms自定义表单验证码(dedecms织梦验证码无法正常显示的3种解决办法)
- python爬网验证码在哪里(详解python 爬取12306验证码)
- canvas技术开发(用canvas显示验证码的实现)
- python识别验证码教程(Python3.5 + sklearn利用SVM自动识别字母验证码方法示例)
- dedecms搜索功能怎么设置详细(取消dedecms 留言簿的验证码的方法)
- dedecms怎样找回登录密码(织梦dedecms 去掉后台登陆验证码的方法)
- devc报错信息找不到(dede5.7验证码错误不显示的解决方法)
- dedecms安全设置(织梦dedecms站点data目录位置变动调整验证码不显示的解决办法)
- dedecms后台内链如何制作(dedecms自定义表单增加验证码的方法分享)
- 香蕉(香蕉三种人不宜吃)
- 没钱可以快乐吗(没钱也能快乐吗)
- 快乐是什么(快乐就是)
- 东南亚有哪个国家(东南亚有哪个国家最发达)
- 东南亚安全吗(好不好挣钱)
- 潘长江小品《照亮全家福》台词剧本完整版(潘长江小品照亮全家福台词剧本完整版)
热门推荐
- 云服务器和物理服务器哪个可靠(云服务器与香港服务器有什么区别?)
- C#中hashtable 的使用方法
- docker容器解决隔离的技术(Docker+selenium实现自动化健康报备的方法)
- python人脸识别实时教程(python dlib人脸识别代码实例)
- css响应式网格布局(CSS网格布局的示例代码)
- jquery中one()的用法
- vue购物车简单项目(vue实现简单购物车案例)
- dedecms关闭站点(dedecms搬家后出现/include/templets/default/index.htm Not Found!解决方案)
- css媒体查询常见的媒体类型(css基于媒体查询和 rem 的响应式布局实践)
- html5复制修改(HTML5实现无刷新修改URL的方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9