php点击验证码,用PHP实现验证码功能

作者:hutuworm 来源:糊涂馋寺

牐犇壳埃不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了

验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,

图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输

入表单提交网站验证,验证成功后才能使用某项功能。

牐犖颐钦饫镎故玖巳绾伪嘈碢HP程序实现验证码功能:

牐牬码一:

/*

*   Filename:    authpage.php

*   Author:   hutuworm

*   Date:   2003-04-28

*   @Copyleft    hutuworm.org

*/

srand((double)microtime()*1000000);

//验证用户输入是否和验证码一致

if(isset($HTTP_POST_VARS['authinput']))

{

if(strcmp($HTTP_POST_VARS['authnum'],$HTTP_POST_VARS['authinput'])==0)

echo "验证成功!";

else

echo "验证失败!";

}

//生成新的四位整数验证码

while(($authnum=rand()%10000)<1000);

?>

请输入验证码:

>

                authimg.php?authnum=<?>

牐牬码二:

/*

*   Filename:    authimg.php

*   Author:   hutuworm

*   Date:   2003-04-28

*   @Copyleft    hutuworm.org

*/

//生成验证码图片

Header("Content-type: image/PNG");

srand((double)microtime()*1000000);

$im = imagecreate(58,28);

$black = ImageColorAllocate($im, 0,0,0);

$white = ImageColorAllocate($im, 255,255,255);

$gray = ImageColorAllocate($im, 200,200,200);

imagefill($im,68,30,$gray);

//将四位整数验证码绘入图片

imagestring($im, 5, 10, 8, $HTTP_GET_VARS['authnum'], $black);

for($i=0;$i<50;$i++)   //加入干扰象素

{

imagesetpixel($im, rand()%70 , rand()%30 , $black);

}

ImagePNG($im);

ImageDestroy($im);

牐?>

牐牨疚某绦蛟贏pache 2.0.45 + PHP 4.3.1环境下运行通过。

上文只是对验证码功能的一个简单实现,并没有考虑商用安全性问题。如果要增强安全性,将此功能投入商业应用,则可以通过以下几个步骤实现:

1. 启用Session。

2. authnum在authimg.php中生成,并计算md5sum,存入session。

3. authpage.php将authinput计算md5sum后,与session中的authnum(md5sum)对比得出验证结果。

本站注:作者使用了简单的代码实现了很酷的功能。不过在添加干扰像素时的效果不是太好,大家可以看一下雨声论坛登录时的效验码(http://ror.cn/perl/ut/user_login.cgi),偶把第二段代码稍改了一下,生成了与其类似的效果。

修改后的代码如下:

/*

*   Filename: authimg.php

*   Author:   hutuworm

*   Date:     2003-04-28

*   @Copyleft hutuworm.org

*/

//生成验证码图片

Header("Content-type: image/PNG");

srand((double)microtime()*1000000);

$im = imagecreate(62,20);

$black = ImageColorAllocate($im, 0,0,0);

$white = ImageColorAllocate($im, 255,255,255);

$gray = ImageColorAllocate($im, 200,200,200);

imagefill($im,68,30,$gray);

while(($authnum=rand()%100000)<10000);

//将四位整数验证码绘入图片

imagestring($im, 5, 10, 3, $authnum, $black);

for($i=0;$i<200;$i++)   //加入干扰象素

{

$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));

imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);

}

ImagePNG($im);

ImageDestroy($im);

?>

这就是微学网-程序员之家为你提供的"用PHP实现验证码功能"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/1578.html

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

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

相关文章

业界 | 计算芯片革命来临?英伟达谷歌入局紧逼英特尔

来源&#xff1a;AI科技评论概要&#xff1a;为了能够满足高速增长的计算需求&#xff0c;一些科技巨头们现在正从生物学中寻找灵感。他们正在重新思考电脑的本质&#xff0c;然后建造更像人类大脑的机器&#xff1a;神经系统里要有一个中央脑干&#xff0c;然后把听、说这样的…

php tp框架分页源代码,ThinkPHP3.2框架自带分页功能实现方法示例

本文实例讲述了ThinkPHP3.2框架自带分页功能实现方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;1.前端-分页代码&#xff1a;{$page}2.创建分页样式&#xff1a;如page.css 并将以下代码复制到该文件中.pages{float: right}.pages a,.pages span {display:inline…

【研究报告】城市云脑,智慧城市2.0产生背后的深层原因,两个重要特征是关键

作者&#xff1a;计算机博士&#xff0c;互联网进化论作者 刘锋到2017年&#xff0c;智慧城市与脑的关键词不断涌现&#xff0c;在互联网云脑的研究基础上&#xff0c;城市云脑形成更为清晰的定义&#xff0c;从2009年智慧地球和智慧城市提出以来&#xff0c;经过8年时间&#…

c# php加解密,PHP和C#可共用的可逆加密算法详解

在一些项目中要求在php中生成加密&#xff0c;然后在asp.net中接受过来的密码再解密&#xff0c;下面和大家分享一个PHP与asp.net C#可共用的可逆加密算法&#xff0c;感兴趣的可以参考参考。php加密算法&#xff1a;class DES{var $key;var $iv; //偏移量function DES($key 1…

机器人也需要拥有属于自己的性格

原作者&#xff1a;STEPH HAY, CAPITAL ONE译者&#xff1a;彭婷概要&#xff1a;建立信任最有效的方法之一就是在你的每一次互动中始终如一地展示你的人格的完整性。现实生活中是如此&#xff0c;在AI中也是如此。对话设计师Mindy Gold曾经设计出一款没有明确名称以及性别的健…

php中英文字符串长度,php 计算中英文混合字符串的长度

php 计算中英文混合字符串的长度echo ccStrLen($str),;echo ccStrLeft($str,3);function ccStrLeft($str,$len) #从左边截取中英文混合字符串{$ascLenstrlen($str); if($ascLen<$len) return $str;$hasCCereg("[xA1-xFE]",$str); #同上$hasAscereg("[x01-x…

IBM Watson 的中国生意

来源&#xff1a;财经杂志概要&#xff1a;鉴于过往&#xff0c;IBM的此次转型更具深意。这家巨头公司此次转型的任务是&#xff0c;业务架构要从软件硬件服务&#xff0c;转变为云认知行业。IBM的这场转型尚未到最终评定是否成功的阶段&#xff0c;但新的业务组合收入如果超过…

java 包含汉字,java判断字符串中是否包含汉字

java判断字符串中是否包含汉字package com.zuidaima.util;/**[email protected] www.zuidaima.com**/public class test {public static void main(String[] args) {String a "中国China";for (int ia.length(); --i>0;) {String b a.substring(i, i1);boolean …

2013-2017:中国 CV(计算机视觉)公司恩仇录

来源&#xff1a;KnowingAI知智概要&#xff1a;这是属于中国 CV&#xff08;计算机视觉&#xff09;公司的五年&#xff0c;这是属于他们的时代。2013 年新广告法还没实行&#xff0c;旷视科技为 Face 写下文案&#xff1a;「最好的人脸识别云计算平台」。2014 年是「格灵深瞳…

git php自动发布,使用 Git Hooks 实现自动部署PHP项目

最近正在寻找一种简便的自动部署代码到服务器的方式&#xff0c;然后就发现了git hooks这个方法&#xff0c;查了一些资料再自己尝试过后&#xff0c;觉得还不错&#xff0c;记录下。什么是git hooks在git上是这么介绍的&#xff1a;和其它版本控制系统一样&#xff0c;Git能在…

matlab读取时间数据,Matlab有关数据库读取及时间项的设定

Matlab有关数据库的读取需下载mysql-connector-java-5.1.26-bin.jar文件放到指定位置&#xff0c;并修改classpath.txt相关文件&#xff0c;具体可网上自行查找。看一下实例&#xff1a;conndatabase(‘photo‘, ‘root‘, ‘123321‘, ‘com.mysql.jdbc.Driver‘, ‘jdbc:mysq…

GAN还有这种操作!谷歌大脑和X实验室利用模拟条件和域适应提高机器抓取效率(附论文)

来源&#xff1a;机器人圈作者&#xff1a;Coogle Brain&#xff0c;Google X概要&#xff1a;相信大家都知道&#xff0c;通过检测和采集带有注释的视觉抓取数据集来训练现代机器学习算法可以说是非常耗时、昂贵的。相信大家都知道&#xff0c;通过检测和采集带有注释的视觉抓…

java gui 打开另一个,java – 从另一个JFrame Gui访问vars

好的,我已根据您的说法对我的代码进行了一些更改.我有3个班&#xff1a;第二类(和第一个GUI)&#xff1a;我有4个JButton – Simulare,CazParticular,Start和HandSelection,一些JLabel和3个JTextField;当我按下HandSelection按钮时,另一个框架会创建不同的内容.第三类(和第二个…

英伟达的雄心:成为AI时代的计算平台

9 月 26 日&#xff0c;NVIDIA英伟达在北京举行GTC大会&#xff0c;NVIDIA 创始人兼首席执行官黄仁勋在演讲中展示了能够加快人工智能大规模采用速度的全新技术&#xff0c;并介绍了为云服务商、电商和智慧城市提供的各项计算平台服务。发布AI 推理软件TensorRT 3&#xff1a;可…

lc filter在matlab哪,基于python实现matlab filter函数过程详解

matlab中的filter函数&#xff1a;y filter(b,a,x)python实现matlab中的filter函数def filter_matlab(b,a,x):y []y.append(b[0] * x[0])for i in range(1,len(x)):y.append(0)for j in range(len(b)):if i > j :y[i] y[i] b[j] * x[i - j ]j 1for l in range(len(b)-1…

php多商户限时抢购,GitHub - 617746883/thinkphp5.0_shop: 基于thinkphp5,多商户商城。积分商城、团购、秒杀、拍卖、夺宝等多插件(持续开发中)...

SUL1SS_shopAuthor:SUL1SSEmail:617746883qq.com简介与现状自营多商户上传管理后台api接口核心功能组件化积分商城预计后续实现功能:团购、拍卖、秒杀、夺宝等插件。客户端-web手机端将采用vue搭建脚手架框架。由于个人能力有限&#xff0c;所以应用的代码在有些地方设计可能存…

Gartner公布云计算市场排位:亚马逊微软阿里前三

来源&#xff1a;网易科技概要&#xff1a;Gartner认为&#xff0c;亚马逊、微软和阿里云三大巨头引领了增长&#xff0c;预估IaaS、PaaS和SaaS的5年增长分别为28%、22%和19%。9月27日&#xff0c;美国权威研究机构Gartner发布2016年全球公共云市场份额报告&#xff0c;全球云计…

matlab设置固定的窗宽窗位,python实现CT窗宽窗位的调整(即指定HU值保存图像)...

最近一直在做实验&#xff0c;所以好久没有更新了&#xff0c;先把上周做的一些小的实验贴出来供大家分享。在医生诊断时&#xff0c;是会将CT图像调整成不同的窗来处理的。比如说肺部CT吧&#xff0c;肺窗(窗宽为2000&#xff0c;窗位为-400)用于看小的肺结节&#xff1b;腹部…

重磅 | 周志华最新论文:首个基于决策树集成的自动编码器,表现优于DNN

来源&#xff1a; AI科技大本营概要&#xff1a;深度神经网络需要花大力气调参&#xff0c;相比之下 gcForest 要容易训练得多。此外&#xff0c;深度神经网络需要大规模的训练数据&#xff0c;而 gcForest 在仅有小规模训练数据的情况下也照常运转。今年 2 月&#xff0c;南京…

adv是php系统标签,whatsns开源php系统网站SEO优化之网站首页,问题详情,文章详情,标签详情,栏目详情TDK优...

网站首页优化TDK可以进入后台&#xff0c;系统设置--站点设置中&#xff0c;设置网站首页别名官方首页名称优化--长尾关键词【whatsns知识库开源内容付费php问答系统】&#xff0c;这样百度搜索问答系统&#xff0c;开源php问答系统&#xff0c;php问答系统&#xff0c;付费问答…