`
yiyeqinghuasoon
  • 浏览: 645738 次
文章分类
社区版块
存档分类
最新评论

php 验证码总结

 
阅读更多

代码如下:
<?php
/* 网站验证码程序
* 运行环境: PHP5.0.18 下调试通过
* 需要 gd2 图形库支持(PHP.INI中 php_gd2.dll开启)
* 文件名: showimg.php
* 作者: 17php.com
* Date: 2007.03
* 技术支持: www.17php.com
*/

//随机生成一个4位数的数字验证码
$num="";
for($i=0;$i<4;$i++){
$num .= rand(0,9);
}
//4位验证码也可以用rand(1000,9999)直接生成
//将生成的验证码写入session,备验证页面使用
Session_start();
$_SESSION["Checknum"] = $num;
//创建图片,定义颜色值
Header("Content-type: image/PNG");
srand((double)microtime()*1000000);
$im = imagecreate(60,20);
$black = ImageColorAllocate($im, 0,0,0);
$gray = ImageColorAllocate($im, 200,200,200);
imagefill($im,0,0,$gray);

//随机绘制两条虚线,起干扰作用
$style = array($black, $black, $black, $black, $black, $gray, $gray, $gray, $gray, $gray);
imagesetstyle($im, $style);
$y1=rand(0,20);
$y2=rand(0,20);
$y3=rand(0,20);
$y4=rand(0,20);
imageline($im, 0, $y1, 60, $y3, IMG_COLOR_STYLED);
imageline($im, 0, $y2, 60, $y4, IMG_COLOR_STYLED);

//在画布上随机生成大量黑点,起干扰作用;
for($i=0;$i<80;$i++)
{
imagesetpixel($im, rand(0,60), rand(0,20), $black);
}
//将四个数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成
$strx=rand(3,8);
for($i=0;$i<4;$i++){
$strpos=rand(1,6);
imagestring($im,5,$strx,$strpos, substr($num,$i,1), $black);
$strx+=rand(8,12);
}
ImagePNG($im);
ImageDestroy($im);
?>



使用方法:
本程序可以直接运行,运行之后即可看到一个图形验证码,每次刷新都随机生成新码。
在某页面中使用此程序时,可以用以下代码:

代码如下:
.....
请输入验证码:
<input type=text name=passcode>
<img src=showimg.php>
.....


这样即可显示出验证码图片。到了验证页面,用以下代码:

代码如下:
...
$code=$_POST["passcode"];
if( $code == $_SESSION["Checknum"]){
验证通过
}else{
验证码错误
}
...

分享到:
评论

相关推荐

    php实现验证码的识别(初级篇)

    一方面算是对这几天学习知识的总结帮助自己理解;另一方面希望对研究这方面的技术同学有所帮助;另外也希望引起网站管理者的注意,在提供验证码时多些考虑进去。由于刚刚接触这方面的知识,理解比较浅显,有错误再所...

    PHP生成各种随机验证码的方法总结【附demo源码】

    本文实例总结了PHP生成各种随机验证码的方法。分享给大家供大家参考,具体如下: 验证码在WEB应用中非常重要,通常用来防止用户恶意提交表单,如恶意注册和登录、论坛恶意灌水等。本文将通过实例讲解使用PHP生成各种...

    PHP工具类总结

    PHP工具类,开发系统必备的类: 表单验证类 验证码类 日志类 分页类 无限极分类类

    PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】

    本文实例总结了PHP图像处理技术。分享给大家供大家参考,具体如下: 1、绘图 场景: 验证码、图像水印、图像压缩处理 php绘图坐标体系是从0,0点越向右值越大,越向下值越大 需要开启php的gd2扩展 php.ini 中 参数1:...

    laravel5.4生成验证码的实例讲解

    总结:本篇文章介绍使用gregwar/captcha实现验证码的具体操作步骤,以及可能遇到的问题和解决办法。 操作步骤: 1, 在laravel5.4项目根目录下找到 composer.json 这个文件, 添加 “gregwar/captcha”: “1.*” 到...

    如何打开php的gd2库

    ...(见图一) 第三步:去掉句首分号(图二) ... 您可能感兴趣的文章:PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】php实现算术验证码功能PHP封装的验证码工具类定义与用法示例PHP实现...旋转)PHP验证码类文

    php制作的简单验证码识别代码

    一方面算是对这几天学习知识的总结帮助自己理解;另一方面希望对研究这方面的技术同学有所帮助;另外也希望引起网站管理者的注意,在提供验证码时多些考虑进去。由于刚刚接触这方面的知识,理解比较浅显,有错误再所...

    PHP使用Curl实现模拟登录及抓取数据功能示例

    具体实现的流程如下(个人总结): 1. 首先需要对相应的登录页面的html源代码进行分析,获得一些必要的信息: (1)登录页面的地址; (2)验证码的地址; (3)登录表单需要提交的各个字段的名称和提交方式; (4)...

    CI框架学习概要总结

    11.CI框架学习-实例操作CI自带验证码使用与如何扩展自定义类库(验证码) 12.CI框架学习-实例操作SESSION类使用与扩展自定义公共类与登陆验证 13 CI框架学习-实例操作后台密码修改与欢迎界面 14.CI框架学习-实例操作...

    CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)

    本文实例总结了CI框架常用经典操作类。分享给大家供大家参考,具体如下: 1. 超级对象中的URI CI_URI类的解析url的相关信息 直接使用$this-&gt;uri可以使用它的相关属性 system/core/URI.php文件中 部分常用属性: (1) ...

    php防止恶意刷新与刷票的方法

    一般来说,恶意刷新就是不停的去刷新提交页面,导致出现大量无效数据,下面我们来总结一下php 防止恶意刷新页面方法总结。 防止恶意刷页面的原理是: 要求在页面间传递一个验证字符串, 在生成页面的时候 随机产生...

    PHP GD库相关图像生成和处理函数小结

    主要介绍了PHP GD库相关图像生成和处理函数,分类总结并分析了php GD库相关图像处理函数的功能与用法,需要的朋友可以参考下

    基于PHP+mysql实现的新闻信息管理系统(源码+数据库+论文+ppt)

    主功能点分析: 前台模块:浏览各类新闻 后台模块:对各类新闻数据的增删改查 ...GD2库的引用主要包括为图片加水印、生成验证码。 JavaScript就是做到页面的一些其他静态特效包括用户注册错误时后面直接给出提示!等

    WP-reCAPTCHA – 创意绝佳的防Spam的 WordPress 插件

    什么是reCATCHA? reCATCHA是由卡内基梅隆大学发明的利用CAPTCHAs ...总结:就像标题所描述的那样,这是一个创意绝佳的 WordPress 插件,其扫描字体反Spam效果肯定是不错的,现在很多网站都在用,要不你也试一试?!

    BIWEB商务智能网站系统 v5.8.1

    是由上海网务网络信息有限公司经历了5年不断的在各种大型项目中实践、总结、开发设计出来的一个快速开发、简单易用的面向对象的企业应用级PHPMVC建站系统。现由上海网务公司开源发布,共同促进行业发展。BIWEB的设计...

    ThinkPHP实战(夏磊)

    .5验证码 146 .6图像处理 149 .6.1实例化Image 149 .6.2获取图片基本信息 149 .6.3图像裁剪 150 .6.4图像缩略图 151 .6.5水印 152 .7总结 153 第11章 留言板项目实战 154 11.1项目目的 154 11.2项目需求 ...

Global site tag (gtag.js) - Google Analytics