php 验证码字体居中,自定义验证码图片的宽高后文本垂直水平居中[帝国cms ShowKey.php]-网站程序网...

define('EmpireCMSAdmin','1');

define('EmpireCMSAPage','login');

define('EmpireCMSNFPage','1');

require('../class/connect.php');

//绘制居中文本, 对于GD的内置字体

function pc_ImageStringCenter($image,$text,$font){

//字体大小

$width = array(1=>5,6,7,8,9);

$height = array(1=>6,8,13,15,15);

//计算图像大小

$xi = imagesx($image);

$yi = imagesy($image);

//计算文本大小

$xr = $width[$font] * strlen($text);

$yr = $height[$font];

//计算中心点的位置

$x=intval(($xi-$xr)/2);

$y=intval(($yi-$yr)/2);

return array($x,$y);

}

//取得随机数

function domake_password($pw_length){

global $public_r;

//验证码字符组成,0数字,1字母,2数字+字母

if($public_r["keytog"]==1)

{

$low_ascii_bound=65;

$upper_ascii_bound=90;

$notuse=array(73,79);

}

elseif($public_r["keytog"]==2)

{

$low_ascii_bound=50;

$upper_ascii_bound=90;

//过滤一些特殊符号和容易看错的字母

//58(:) 59(;) 60() 63(?) 64(@) 73(I) 76(L) 79(O)

$notuse=array(58,59,60,61,62,63,64,73,76,79);

}

else

{

$low_ascii_bound=48;

$upper_ascii_bound=57;

$notuse=array(48,49);

}

while($i

if(PHP_VERSION

{

mt_srand((double)microtime()*1000000);

}

$randnum=mt_rand($low_ascii_bound,$upper_ascii_bound);

if(!in_array($randnum,$notuse))

{

$password1=$password1.chr($randnum);

$i++;

}

}

return $password1;

}

//返回颜色

function ReturnShowKeyColor($img){

global $public_r;

//背景色

if($public_r["keybgcolor"])

{

$bgcr=ToReturnRGB($public_r["keybgcolor"]);

$r["bgcolor"]=imagecolorallocate($img,$bgcr[0],$bgcr[1],$bgcr[2]);

}

else

{

$r["bgcolor"]=imagecolorallocate($img,7,27,63);

}

//文字色

if($public_r["keyfontcolor"])

{

$fcr=ToReturnRGB($public_r["keyfontcolor"]);

$r["fontcolor"]=ImageColorAllocate($img,$fcr[0],$fcr[1],$fcr[2]);

}

else

{

$r["fontcolor"]=ImageColorAllocate($img,255,255,255);

}

//干扰色

if($public_r["keydistcolor"])

{

$dcr=ToReturnRGB($public_r["keydistcolor"]);

$r["distcolor"]=ImageColorAllocate($img,$dcr[0],$dcr[1],$dcr[2]);

}

else

{

$r["distcolor"]=ImageColorAllocate($img,255,255,255);

}

return $r;

}

//显示验证码

function ShowKey($v){

$vname=ecmsReturnKeyVarname($v);

//取得四位随机验证码

$key=strtolower(domake_password(4));

//设置验证码

ecmsSetShowKey($vname,$key,0);

//是否支持gd库

if(function_exists("imagegif"))

{

header("Content-type:image/gif");

$img=imagecreate(60,32);

$colorr=ReturnShowKeyColor($img);

$bgcolor=$colorr["bgcolor"];

$fontcolor=$colorr["fontcolor"];

$distcolor=$colorr["distcolor"];

imagefill($img,0,0,$bgcolor);

list($x,$y)=pc_ImageStringCenter($img,$key,5);

imagestring($img,5,$x,$y,$key,$fontcolor);

//for($i=0;$i<90;$i++)

//{

//imagesetpixel($img,rand()%70,rand()%30,$distcolor);

//}

imagegif($img);

imagedestroy($img);

}

elseif(function_exists("imagepng"))

{

header("Content-type:image/png");

$img=imagecreate(50,26);

$colorr=ReturnShowKeyColor($img);

$bgcolor=$colorr["bgcolor"];

$fontcolor=$colorr["fontcolor"];

$distcolor=$colorr["distcolor"];

imagefill($img,0,0,$bgcolor);

imagestring($img,5,6,3,$key,$fontcolor);

for($i=0;$i<90;$i++)

{

imagesetpixel($img,rand()%70,rand()%30,$distcolor);

}

imagepng($img);

imagedestroy($img);

}

elseif(function_exists("imagejpeg"))

{

header("Content-type:image/jpeg");

$img=imagecreate(50,26);

$colorr=ReturnShowKeyColor($img);

$bgcolor=$colorr["bgcolor"];

$fontcolor=$colorr["fontcolor"];

$distcolor=$colorr["distcolor"];

imagefill($img,0,0,$bgcolor);

imagestring($img,5,6,3,$key,$fontcolor);

for($i=0;$i<90;$i++)

{

imagesetpixel($img,rand()%70,rand()%30,$distcolor);

}

imagejpeg($img);

imagedestroy($img);

}

elseif(function_exists("imagewbmp"))

{

header("Content-type:image/vnd.wap.wbmp");

$img=imagecreate(50,26);

$colorr=ReturnShowKeyColor($img);

$bgcolor=$colorr["bgcolor"];

$fontcolor=$colorr["fontcolor"];

$distcolor=$colorr["distcolor"];

imagefill($img,0,0,$bgcolor);

imagestring($img,5,6,3,$key,$fontcolor);

for($i=0;$i<90;$i++)

{

imagesetpixel($img,rand()%70,rand()%30,$distcolor);

}

imagewbmp($img);

imagedestroy($img);

}

else

{

ecmsSetShowKey($vname,"ecms",0);

echo ReadFiletext("../data/images/ecms.jpg");

}

}

//返回变量名

function ecmsReturnKeyVarname($v){

$name="checkkey";

return $name;

}

$v=$_GET["v"];

ShowKey($v);

?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中的常量可以修改吗_深入理解Python变量与常量

变量是计算机内存中的一块区域&#xff0c;变量可以存储规定范围内的值&#xff0c;而且值可以改变。基于变量的数据类型&#xff0c;解释器会分配指定内存&#xff0c;并决定什么数据可以被存储在内存中。常量是一块只读的内存区域&#xff0c;常量一旦被初始化就不能被改变。…

java方法体逻辑不会写怎么办,想自己写框架?不会写Java注解可不行

用注解一时爽&#xff0c;一直用一直爽Java后端开发进入spring全家桶时代后&#xff0c;开发一个微服务提供简单的增删改查接口跟玩泥巴似的非常简单&#xff0c;一顿操作猛如虎&#xff0c;回头一看代码加了一堆注解&#xff1a;Controller Autowired Value&#xff0c;面向注…

联想拯救者y7000加内存条_短测联想拯救者Y7000,到底值不值得买?

7000块左右的笔记本电脑有什么好选择&#xff0c;我相信这是很多人一直纠结的问题&#xff0c;虽然我用过的笔记本很多&#xff0c;但是这个价位的用的少之又少&#xff0c;但随着十代酷睿标压处理器的大量铺货&#xff0c;联想拯救者Y7000进入了我的视线。那到底值不值得买呢&…

php适用于什么服务器,php – 找不到laravel类(适用于localhost但不适用于DO服务器)...

这是一个重复的问题 – 例如&#xff1a;Laravel 4 migrations – class not found但是,我已经尝试了所有解决方案(来自我能找到的每个论坛)并且无法解决这个问题.脚本我在我的本地机器上创建了一个Laravel 4项目 – 添加了一些类,控制器,视图等 – 项目运行良好.然后我将这个新…

python扫雷游戏课程设计小组任务计划与分配表_python实现扫雷游戏

本文为大家分享了python实现扫雷游戏的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下本文实例借鉴mvc模式&#xff0c;核心数据为model&#xff0c;维护1个矩阵&#xff0c;0表无雷&#xff0c;1表雷&#xff0c;-1表已经检测过。本例使用python的tkinter做gui,由于…

时间同步服务器java,Windows 配置时间同步服务器以及配置时间同步间隔

如何修改windows下的时间同步间隔操作步骤如下&#xff1a;打开注册表&#xff1a;在“开始”菜单→“运行”项下(或按WinR)输入“Regedit”进入注册表编辑器。2.修改默认时间服务器IP&#xff1a;展开HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services->W…

房价python爬取_python爬取并解析 重庆2015-2019房价走势

1 #! /usr/bin/env python2 #-*- coding:utf-8 -*-34 5 Created on 2019年11月24日67 author: Admin8 910 importrequests11 from lxml importetree12 importtime13 importcsv1415 16 方法名称&#xff1a;spider17 功能&#xff1a; 爬取目标网站&#xff0c;并以源码文本18 参…

PHP递归删除目录面试题,PHP 递归删除目录中文件

/*** 递归删除目录中文件* param $pathname* return bool*/public static function delDir($pathname)//要删除的目录{if(file_exists($pathname)) {if(is_file($pathname)) {unlink($pathname);} else {$dir opendir($pathname);while($filename readdir($dir)) {if($filena…

python中 12_python编程中常用的12种基础知识总结

1、正则表达式替换目标: 将字符串line中的 overview.gif 替换成其他字符串>>> line >>> more.compile(r(?<SRC)"([\w\.])",re.I)>>> mo.sub(r"\1****",line)>>> mo.sub(rreplace_str_\1,line)< /span>>&…

php smarty分页原理,SMARTY分页详解

<?phprequire_once (include/common.inc.php);//这里是个接口common.inc.php里面包函了一些常用到的函数类库以及SMARTYinclude_once(header.php);//调用头部信息,SESSION的信息全都保存在这里,这样做的好处是几乎所有的页面都不需要在开头输入session_start();$smarty new…

python十个一行_python 如何将一系列数字十个一行输出

展开全部答案如下&#xff1a;代码详解1、使用循环输出列表&#xff0c;利用 计数器控制输出数量&#xff0c;当输出到第十个&#xff0c;62616964757a686964616fe4b893e5b19e31333365663532计数器归零&#xff0c;重新开始计数2、print输出增加end参数可以控制输出后以什么结尾…

sql oracle 递归查询语句,Oracle使用SQL语句进行递归查询

idpid问题描述&#xff1a;102031415262738495取出id为1及其下属的所有的数据,结果为下idpid1031417384SQL> CREATE TABLE TBL_TEST2 (3 ID NUMBER,4 NAME VARCHAR2(100 BYTE),5 PID NUMBER DEFAULT 06 );Table createdS…

python中与0xf2相等的是_python中__str__与__repr__

(1)背景python中&#xff0c;对于类(自定义类)的实例对象的默认显示既没有太大用处&#xff0c;也不美观。比如&#xff1a;1 classadder:2 def __init__(self,value0):3 self.datavalue #初始化数据4 def __add__(self,other):5 self.dataother6>>> xadder()7>>…

oracle清理asm归档日志,【Oracle】 rman 删除归档日志的命令

因为数据仓库上asm的磁盘空间不足&#xff0c;需要删除早期的归档日志&#xff0c;查看资料有以下两种方式&#xff1a;delete archivelog until time sysdate-N;delete archivelog all completed before sysdate-N;这两个命令的差别在哪里呢&#xff1f;使用list 命令来查看一…

求逆矩阵计算器_991CN的矩阵运算

昨天的推文中说了一道二端口的题目&#xff0c;虚线中的大二端口由两个小二端口级联而成&#xff0c;在计算过程中&#xff0c;我们需要使用到矩阵的运算&#xff0c;昨天讲题的时候说会说一下用计算器进行矩阵运算&#xff0c;今天我们就来说一下。其实在算电路的时候&#xf…

去快捷方式小箭头_电脑桌面如何快速去掉快捷方式小箭头

我们使用电脑时会发现在电脑桌面图标上经常有一个小箭头&#xff0c;这是什么原因呢&#xff1f;原来&#xff0c;这个小箭头只存在于快捷方式的软件图标上&#xff0c;就是说通过快捷方式创建的图标就有这个小箭头。那么如何去掉这些小箭头呢&#xff01;不知道也没关系&#…

Oracle里silent,静默方式(silent)安装Oracle软件

有的时候不方便登陆Linux/Unix的图形界面安装数据库&#xff0c;且GUI方式安装让我们无法知道具体是做了什么操作&#xff0c;我们完全可以采用命令模式安装和删除Oracle软件(代替OUI)、建立和删除数据库库(代替dbca)。平台&#xff1a;RHEL4.5&#xff0c;Oracle10.2.0.11、上…

oracle 移动日志文件,Oracle数据库移动数据文件、日志文件和控制文件

1、关闭数据库SQL> shutdown immediate;2、移动数据文件和日志文件到新位置SQL> host mv /u01/olddata.dbf /u02/newdata.dbf;SQL> host mv /u01/oldredo.log /u02/newredo.log;3、以加载模式启动数据库SQL> startup mount;4、在数据库中更改数据文件和日志文件路径…

python3导入_Python3导入相对还是绝对的正确方法?

我正在编写一个python模块。在Python2中一切正常&#xff0c;但在Python3中&#xff0c;导入失败。这是我的代码结构。neuralnet/__init__.pytrain.py # A wrapper to train (does not define new things)neuralnet.py # Defines the workhorse class neuralnetlayers/__init__…

oracle pdb是什么意思,浅谈Oracle数据库12c PDB技术

PDB大致功能描述&#xff1a;创建&#xff1a;用create pluggable database的命令&#xff0c;用file_name_convert的方式拷贝seed pdb的文件到对应的新pdb的路径下。拷贝的是最基本system和sysaux表空间&#xff0c;将新建的pdb从mount的状态打开到read write的状态。建立pdb用…