phpwind验证码代码讲解-PHP源码
作者:掩飾獨殇_389 | 来源:互联网 | 2018-07-17 16:17
ec(2);需要gd库支持.Image图像函数参见php.liukang.commanualzhref.image.php<?phpBYPHP国度www.phphot.be关闭报错error_reporting(0);图片宽度$x_size60;图片高度$y_size20;生成4个随机字符$nmsgnum_rand(4);
需要gd库支持.
Image 图像函数
参见http://php.liukang.com/manual/zh/ref.image.php
// BY PHP 国度 www.phphot.be
//关闭报错
error_reporting(0);
//图片宽度
$x_size=60;
//图片高度
$y_size=20;
//生成4个随机字符
$nmsg=num_rand(4);
//支持安全通连接吗?
$S=$_SERVER['SERVER_PORT']=='443' ? 1:0;
//使用COOKIE记录随机码
//expire=0 COOKIE将会在会话结束后(一般是浏览器关闭)失效。
setCOOKIE('ck_num',md5($nmsg),0,'/','',$S);
//创建宽:60*20的图片(画布)
$aimg = imagecreate($x_size,$y_size);
//设置图片背景色
$back = imagecolorallocate($aimg, 255, 255, 255);
//设置字体颜色
$border = imagecolorallocate($aimg, 0, 0, 0);
//从0,0点填充59*19的白色矩形区域
imagefilledrectangle($aimg, 0, 0, $x_size - 1, $y_size - 1, $back);
//从0,0点绘制59*19的黑色矩形边框
imagerectangle($aimg, 0, 0, $x_size - 1, $y_size - 1, $border);
for ($i=0;$i //在图片上写字
imageString($aimg,5,$i*$x_size/4+3,2, $nmsg[$i],$border);
}
header("Content-type: image/png");
imagepng($aimg);
imagedestroy($aimg);exit;
function num_rand($lenth){
// 播下一个随机数发生器种子
//php自4.2.0起,,此参数变为可选项,当该项为空时,会被设为随时数
mt_srand((double)microtime() * 1000000);
//产生有4个随机数字的字符串
for($i=0;$i<$lenth;$i++){
$randval.= mt_rand(0,9);
}
//对含有4个数字的字符串使用md5加密,长度是32位的
//从3长度为32的字符中,自最小数起或最大数32-$lenth起,取长度为$lenth的字符串
$randval=substr(md5($randval),mt_rand(0,32-$lenth),$lenth);
return $randval;
}
?>
推荐阅读
-
本文详细介绍了Hadoop的不同发行版本及其特点,帮助读者根据实际需求选择最合适的Hadoop版本。内容涵盖Apache Hadoop、Cloudera CDH等主流版本的特性及应用场景。 ...
[详细]
蜡笔小新 2024-12-22 20:38:12
-
一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ...
[详细]
蜡笔小新 2024-12-22 20:24:15
-
-
本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ...
[详细]
蜡笔小新 2024-12-22 19:17:15
-
本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ...
[详细]
蜡笔小新 2024-12-22 16:20:33
-
本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ...
[详细]
蜡笔小新 2024-12-22 10:35:47
-
本文探讨了如何解决PHP文件无法写入本地文件的问题,并解释了PHP文件中HTML代码无效的原因,提供了一系列实用的解决方案和最佳实践。 ...
[详细]
蜡笔小新 2024-12-22 07:18:12
-
本文详细介绍了如何利用PHP构建一个简易的网站访客统计系统。通过具体的代码示例和详细的解释,帮助开发者理解和实现这一功能,适用于初学者和有一定经验的开发人员。 ...
[详细]
蜡笔小新 2024-12-21 19:37:09
-
目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ...
[详细]
蜡笔小新 2024-12-22 18:53:43
-
由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ...
[详细]
蜡笔小新 2024-12-22 17:57:10
-
本文深入探讨了ZooKeeper集群中可能出现的脑裂问题,分析其成因,并提供了多种有效的解决方案,确保集群在高可用性环境下的稳定运行。 ...
[详细]
蜡笔小新 2024-12-22 17:19:52
-
了解如何通过设置和调整交易限额来增强信用卡使用的安全性,保障资金安全。 ...
[详细]
蜡笔小新 2024-12-22 13:28:34
-
本文提供2020年初级电工模拟考试题库及实操视频资源,涵盖最新大纲和真题解析,帮助考生高效备考。内容包括理论知识、实操技能以及详细答案解析,适用于全国各地区电工(初级)考试。 ...
[详细]
蜡笔小新 2024-12-22 12:22:10
-
本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ...
[详细]
蜡笔小新 2024-12-22 09:08:56
-
本文详细介绍了在Windows 10操作系统中设置锁屏密码的步骤,帮助用户增强电脑的安全性。 ...
[详细]
蜡笔小新 2024-12-22 09:06:57
-
如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ...
[详细]
蜡笔小新 2024-12-22 07:41:31
-