`
yymmiinngg
  • 浏览: 180194 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP验证码应用,示例

阅读更多

近日试着用PHP做了一个验证码程序,示例如下:

 

一、准备一个展示并提交验证码的页面

<?php

    @header("content-type:text/html; charset=UTF-8");

    //打开session

    session_start();

?>

<html>

    <head>

       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

       <title>PHP验证码示例</title>

    </head>

    <body>

       验证码:<br/>

       <iframe id="iimg" height="100" width=300 src="img.php" frameborder="0" ></iframe>

       <br/>

       <input type=button value="看不清,换一张" onclick="iimg.location.reload();">

       <br>

       <form action="validate.php" method="post">

           输入验证码:<input name="imgId" style="width:60">

           <input type="submit" value="确定">

       </form>

    </body>

</html>

 

二、以下是验证码生成页面,该页面在第一页面中被<img>调用

<?php

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

session_start();

//验证码为随机字符,以下是算法

$randval;

for($i=0;$i<7;$i++){

    $randstr = mt_rand(ord('A'),ord('Z'));

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

    $randv = mt_rand(0,10);

    if($randv%2==0){

       $randval.=mt_rand(0,10);

    }else{

       $randval.=chr($randstr);

    }

}

//注册验证码到session

session_register($randval);

//以下是绘制验证码图

$height = 50;//图高

$width = 100;//图宽

$im = ImageCreateTrueColor($width, $height);

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

$blue = ImageColorAllocate($im, 0, 0, 64);

ImageFill($im, 0, 0, $white);

srand((double)microtime()*1000000000);

ImageLine($im, mt_rand(0,$width/3), mt_rand(0,$height/3), mt_rand($width/3,$width), mt_rand($height/3,$height), $blue);

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

ImageLine($im, mt_rand($width/3,$width), mt_rand(0,$height/3), mt_rand(0,$width/3), mt_rand(0,$height/3), $blue);

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

ImageString($im,16 , mt_rand(0,$width - strlen($randval) * 10), mt_rand(0,$height-12), $randval, $blue);

ImageGIF($im);

ImageDestroy($im);

/*

需要注意的是:为了支持以上绘图函数,我们必须在PHP载入GD2图形处理库,可修改 php.ini 文件中的

;extension=php_gd2.dll

为

extension=php_gd2.dll

即开启GD2库

*/

?>

 

三、这是验证页面,提示是否通过验证

<?php @header("content-type:text/html; charset=UTF-8");

    //开启session

    session_start();

    //得到用户输入的验证码,并转换成大写

    $imgId_req = $_REQUEST['imgId'];

    $imgId_req = strtoupper($imgId_req);

    //验证该字符串是否注册了session变量

    if (session_is_registered($imgId_req)) {

       echo "<font color=blue >通过验证!</font>";

    } else {

       echo "<font color=red >验证错误!</font>";

    }

    //关闭session,以清除所有注册过的变量

    session_destroy();

?>

 

四、开启服务,在地址栏中输入 “.../input.php” ,此处省略了主机及目录名

 

五、更多有关GD2库的介绍请参考:

http://www.cndw.com/tech/server/2006042051613.asp

分享到:
评论
9 楼 ctrlming 2008-03-07  
明白了 是iimg.location.reload();以前没用过,学会了。
8 楼 ctrlming 2008-03-06  
不知道你在客户端是怎么调用后台生成图片的方法的?
7 楼 boin 2008-03-01  
zwws的意思是
session_is_registered()
session_register()
这些函数都是PHP 的old style。

他指的superglobals应该是指
$_SESSION 超全局数组.
6 楼 xombat 2008-02-29  
zwws 写道
本例中SESSION的处理方式比较老... 现在用SUPERGLOBAL哈!

??疑惑superglobal你是怎么实现的?
想领教一下
5 楼 xombat 2008-02-29  
看来这里学习php的人很少,大部分都是新手

SESSION老什么?session不也是superglobal?
4 楼 yymmiinngg 2008-02-26  
不好意思,本人刚接触PHP,你那有关于“jpgraph的antispam”方面的资料吗?
3 楼 hellas 2008-01-31  
为什么不用jpgraph的antispam?
2 楼 yymmiinngg 2008-01-23  
能提供一个示例吗?我刚接触PHP,想了解多一点!
1 楼 zwws 2008-01-21  
本例中SESSION的处理方式比较老... 现在用SUPERGLOBAL哈!

相关推荐

    PHP验证码的应用示例

    本篇文章将详细探讨PHP验证码的应用,包括其原理、实现方法以及一些实际案例。 验证码的基本原理是通过显示一个难以由计算机程序识别的图像,来区分人类用户和机器。通常这个图像包含一些随机字符或数字,用户需要...

    创蓝短信发送验证码校验示例

    本示例是基于PHP语言实现的“创蓝短信发送验证码校验”的功能,旨在帮助开发者理解如何在网站中集成这种服务。下面将详细介绍这个过程中的关键知识点。 1. **短信API接口**: - 创蓝短信平台提供了一个HTTP API...

    APISpace 语音验证码 API接口 PHP调用示例代码

    在IT行业中,API(应用程序编程接口)是...通过上述代码示例,开发者可以快速集成语音验证码功能到自己的应用中,提升用户体验的同时确保了安全性。记得在实际使用中根据需求填写正确的参数,并妥善管理API访问密钥。

    PHP - cURL实现短信验证码注册登录完整示例:PHP - cURL.php和附件说明

    在IT行业中,PHP和cURL库常常被用来处理网络请求,特别是进行API交互,例如发送短信验证码进行用户注册和登录验证。...开发者可以通过学习这个示例来提升他们的技能,更好地理解和应用网络请求技术。

    天翼短信验证码示例代码

    本示例代码“天翼短信验证码示例代码”提供了三种不同的验证码实现方式,包括模板短信、自定义短信验证码以及下发短信验证码,旨在帮助开发者理解和应用这类技术。 首先,我们来探讨模板短信。模板短信是预先设定好...

    简单验证码识别示例(高手pass)

    在本示例中,我们探讨的是一个相对简单的验证码识别问题,适用于初学者了解基础的图像处理和模式识别技术。高手可能对此较为熟悉,但对于新手来说,这是一个很好的起点。 首先,验证码的目的是验证用户是人类而非...

    PHP发送邮箱验证码

    实际应用中,你可能还需要处理验证码的生成、存储、过期和验证等一系列逻辑。同时,为了提高用户体验,可以添加错误处理和提示,确保邮件发送过程的顺畅。 在压缩包中的"mail"文件可能是PHPMailer的示例代码或者...

    PHP验证码代码,可参考

    验证码(CAPTCHA)是一种用于验证用户是否...`www.php` 和 `www_sub.php` 文件的组合提供了一个基本的验证码系统实现,通过学习和理解这些代码,开发者可以更好地掌握PHP验证码的制作方法,并将其应用到自己的项目中。

    简单完整的PHP验证码

    验证码(CAPTCHA)是一种用于...总结来说,创建一个简单而完整的PHP验证码涉及到生成随机字符串、图像处理、会话管理以及验证逻辑等多个方面。通过理解并实践这些步骤,开发者可以为自己的PHP应用添加有效的安全防护。

    PHP 异步验证网站验证码实例

    这个实例展示了如何将面向对象的编程思想应用到PHP验证码验证中。面向对象编程(Object-Oriented Programming, OOP)是PHP的一种强大特性,可以提高代码的可读性、可维护性和复用性。`validator.php` 可能会包含一个...

    APISpace 验证码短信 API接口 PHP调用示例代码

    总的来说,通过这个PHP示例,我们学习了如何利用APISpace的验证码短信API接口进行短信发送,这对于开发需要用户验证的应用程序非常有用。记得在实际应用中替换示例代码中的API密钥和相关参数,以确保安全性和正确性...

    PHP - HTTP_Request2实现短信验证码注册登录完整示例:PHP -HTTP_Request2.php和附件说明.rar

    在IT行业中,尤其是在Web开发领域,短信验证码已经成为了一个不可或缺的安全机制,它被广泛应用于用户注册、登录、找回密码等场景,以确保用户操作的安全性。本示例将介绍如何使用PHP的HTTP_Request2库来实现这个...

    php验证码类

    "php验证码类"指的是用PHP编程语言编写的一个特定的类,这个类通常包含用于生成和验证随机图像验证码的函数。 验证码的主要功能是确保用户是人类,而不是计算机程序。它们通过创建一个难以自动识别的图像,其中包含...

    PHP超强验证码-合集

    这个“PHP超强验证码-合集”提供的示例代码和资源可以帮助开发者快速理解和实现各种类型的PHP验证码,提升网站的安全性,同时平衡用户体验。通过深入研究和实践,你可以根据自己的项目需求定制出高效、安全的验证码...

    PHP实现验证码自动识别

    在测试案例"ceshi-demo1"中,可能包含了一个简单的PHP实现验证码识别的代码示例。这可能涵盖上述步骤的部分或全部,并且已经过测试,证明可以运行。为了进一步理解这个案例,你需要查看源代码,理解其工作原理并根据...

    php识别验证码完整例子 php56版本

    总的来说,实现一个PHP验证码系统需要理解图像处理、会话管理以及基本的表单处理。在PHP 5.6环境下,我们需要特别关注版本兼容性和错误处理,以确保代码的稳定运行。通过学习和实践这个完整的例子,开发者可以更好地...

    php高安全验证码生成类

    通过以上方法,我们可以构建一个具有较高安全性的PHP验证码生成类,有效防止自动化攻击,保护Web应用的安全。在实际项目中,根据需求调整参数,平衡安全性和用户体验,是实现验证码功能的关键。

    jquery全面验证带验证码的注册示例

    `jQuery` 是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画制作等任务,而`jQuery`全面验证带...实际应用中,开发者还需结合后端语言(如PHP、Node.js等)和数据库技术,以构建完整的用户注册系统。

    php 验证码

    以下是一个简单的PHP验证码实现示例(validateCode.php): ```php &lt;?php session_start(); $width = 120; $height = 40; $image = imagecreatetruecolor($width, $height); $background_color = ...

    PHP验证码(4位数字)

    本篇文章将深入探讨PHP验证码的实现,特别是针对四位数字验证码的创建。 验证码的核心在于生成一个随机的、难以被程序自动识别的字符串或图像,并在用户提交表单时检查用户输入是否匹配。在提供的"PHP验证码"中,...

Global site tag (gtag.js) - Google Analytics