`

Coldfusion 7 生成验证码实例(CF验证码)

阅读更多

原理:  将图片的SRC指向一个CFM文件,在CFM文件中用JAVA功能创建一个显示验证码的图片,同时记录Session变量。当用户输入验证码后与Session变量进行比较!

示例:

请输入验证码: <input type="text" name="captcha"><img src="captcha.cfm" id="captchaImage" border="0">

比较用户输入的验证码:

<cfif comparenocase(session.code,form.captcha) neq 0>
<!---验证码不对--->
</cfif>

captcha.cfm内容如下:

<cffunction name="loadSystemFont"   access="private" output="false" returntype="any">
<cfargument name="fontName" required="no" type="string" default="Georgia" />
<cfargument name="size" required="no" type="numeric" default="18" />
<cfargument name="style" required="no" type="string" default="italic" />
<cfset var font = createObject("Java","java.awt.Font") />
<cfreturn font.decode("#arguments.fontName#-#ucase(arguments.style)#-#arguments.size#") />
</cffunction>
<!-- ******************产生随机数字和字母******************** -->
<cffunction name="getRandomCode" access="private" returntype="string" output="false">
<cfargument name="length" type="numeric" required="no" default="4"/>
<cfset var charList = "A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|0|1|2|3|4|5|6|7|8|9" />
<cfset var randomCode=""/>
<cfloop from="1" to="#arguments.Length#" index="i">
<cfset thisNum = RandRange(1,listlen(charList, "|")) />
<cfset thisChar = ListGetAt(charList, thisNum, "|") />
<cfset randomCode = ListAppend(randomCode, thisChar, " ") />
</cfloop>
<cfset randomCode = replace(randomCode, " ", "", "all") />
<cfreturn randomCode />
</cffunction>
<!-- ***********************创建图形******************************* -->
<cffunction name="createImage" access="private" returntype="any" output="false">
<cfargument name="width" type="numeric" required="no" default="70" />
<cfargument name="height" type="numeric" required="no" default="25" />
<!-- 创建JAVA类 -->
<cfset var image = createObject("java","java.awt.image.BufferedImage") />
<cfset var color=createObject("java","java.awt.Color") />
<!-- 定义字体样式 -->
<cfset fontStyle=loadSystemFont() />
<!-- 在内存中创建图象 -->
<cfset image.init(javaCast("int",arguments.width),javaCast("int",arguments.height),image.TYPE_INT_RGB) />
<!-- 获取图形 -->
<cfset g = image.getGraphics() />
<!-- 设定背景色 -->
<cfset g.setColor(color.gray) />
<cfset g.fillRect(0,0,javaCast("int",arguments.width),javaCast("int",arguments.height)) />
<!-- 获取随机产生的认证码 -->
<cfset code=getRandomCode() />
<!-- 将认证码写入SESSION用于比较 -->
<cfset session.code=code />
<!-- 将认证码显示到图象中 -->
<cfset g.setColor(color.black) />
<cfset g.setFont(fontStyle) />
<cfset g.drawString(code,javaCast("int",12),javaCast("int",18)) />
<!-- 使图象生效 -->
<cfset g.dispose() />
<cfreturn image />
</cffunction>

<cfscript>
//定义图像存放路径
path=getDirectoryFromPath(expandPath("*.*"));
outputStream = createObject("java","java.io.FileOutputStream");
imageIO = createObject("java","javax.imageio.ImageIO");
outputStream.init("#path#code.png");
// 输出图象到本地
imageIO.write(createImage(),"png",outputStream);
</cfscript>
<!-- 设置页面不被缓存 -->
<cfheader name="Pragma" value="no-cache" />
<cfheader name="Cache-Control" value="no-cache" />
<cfheader name="Expires" value="0" />
<cfcontent type="image/x-png" file="#path#code.png" />

分享到:
评论

相关推荐

    第十章ColdFusion动态网站开发——实例.zip

    《第十章 ColdFusion 动态网站开发——实例》的学习资料涵盖了使用ColdFusion这一强大的服务器端脚本语言来构建动态网站的核心技术。ColdFusion是由Adobe公司开发的一种用于快速应用开发(RAD)的平台,它允许开发者...

    coldfusion

    7. **Web服务和API**:ColdFusion可以创建和消费Web服务,支持SOAP和RESTful API,使得与其他系统集成变得简单。 8. **安全性**:ColdFusion提供了多种安全特性,如防止SQL注入、跨站脚本攻击(XSS)和跨站请求伪造...

    ColdFusion9升级到ColdFusion16

    另外,升级到ColdFusion2016/CF11时,可以选择“以前的ColdFusion安装的检测”选项,并选择“内置Web服务器的激活(共存)”,以便完成Web服务器的连接配置。 ColdFusion Administrator的更新包含新的安全设置,...

    Coldfusion 9的注册文件

    keygen_coldfusion9.exe可能是一个密钥生成器,用于生成激活ColdFusion 9的序列号,但需要注意的是,使用此类工具可能违反软件许可协议,并且可能存在法律风险。nud.jpg可能是一个与安装或说明相关的图片,例如许可...

    使用ColdFusion Express进行ColdFusion Web应用开发

    ### 使用ColdFusion Express进行ColdFusion Web应用开发 #### 冷门好物:ColdFusion Express 在当今快速发展的互联网技术领域中,ColdFusion作为一种成熟且功能强大的Web应用程序开发平台,一直保持着其独特的地位...

    ColdFusion参考手册

    "冷焰参考手册"包含了所有ColdFusion标签的使用说明和实例,对于初学者来说是一份宝贵的教程。手册中的实例通常会展示如何在实际应用中使用这些标签,包括如何连接数据库、处理表单数据、创建动态页面等。通过阅读和...

    Java for Coldfusion Developers

    Java for Coldfusion Developers

    coldfusion 论坛源码 cfbb

    **冷焰(ColdFusion)论坛源码 CFBB详解** 冷焰(ColdFusion)是一种由Adobe公司开发的服务器端脚本语言,主要用于构建Web应用程序。CFBB(ColdFusion Bulletin Board)是一款基于ColdFusion的论坛软件,适用于构建...

    ColdFusion初级教程

    ColdFusion Web application是帮助你建立实施大规模网站应用系统的最快方式,它集成了浏览器,服务器及数据库技术。从电子商务到商业流程自动化,从Intranets到Internet,ColdFusion都能够帮助你快速、轻松的开发实施...

    ColdFusion 5.0高级编程5.pdf

    根据给定的信息,“ColdFusion 5.0高级编程5.pdf”这个文件主要涉及的是ColdFusion 5.0的相关高级编程技术。由于文件具体内容并未给出详细的技术信息,以下将基于ColdFusion 5.0这一版本的特点以及高级编程可能包含...

    ColdFusion函数.chm

    ColdFusion 函数 大部分 集合

    Coldfusion MX经典教程

    ColdFusion Web Development with Macromedia Dreamweaver MX 2004

    ColdFusion函数

    ColdFusion是一种强大的服务器端脚本语言,由Adobe公司开发,用于构建动态网站、Web应用程序和集成企业系统。它的函数库是其核心功能之一,提供了丰富的功能和操作,以实现高效编程。本篇文章将深入探讨ColdFusion...

    coldfusion_install.pdf

    Adobe ColdFusion是一款由Adobe公司开发的服务器端技术,用于快速开发和部署基于Java平台的Web应用。ColdFusion MX 2016(即文档中提到的版本)为开发人员提供了一套工具,以开发、测试和部署企业级应用。从文档提供...

    ColdFusion 速成课程

    ### ColdFusion 速成课程知识点详解 #### 一、课程概述 - **课程目标**:本课程旨在帮助参与者快速掌握ColdFusion的基础知识及其在Web开发中的应用。 - **学员要求**: - 熟悉Web技术,了解基本的网络架构与运作...

    ColdFusion安装指南

    7. **完成安装**: - 安装向导将完成安装过程,并启动 ColdFusion 管理员界面。 #### 四、使用 ColdFusion 8 1. **启动 ColdFusion 管理员**: - 在 Web 浏览器中输入 http://localhost:8500/administrator 来...

    ColdFusion Tags标签

    - `&lt;cfadmin&gt;`:管理ColdFusion服务器,配置应用、数据源等。 - `&lt;cfapplication&gt;`:定义应用程序范围,管理会话和应用程序变量。 以上是ColdFusion Tags的一些主要类别和用途。通过熟练掌握这些标签,开发者能够...

    ColdFusion后台利用方法

    ColdFusion后台利用方法

    Adobe ColdFusion

    Adobe ColdFusion ColdFusion初級教程繁體中文

Global site tag (gtag.js) - Google Analytics