产生彩色的验证码
2009-12-02 00:27
239 查看
今天,我们把我们上一篇博文中的小项目做一个升级版本!
1、产生彩色的验证码
在上一篇文中,我们产生了随机的验证码, 但是我们在有的网站上看到的验证码是彩色的,那么,我们怎么来产生彩色的验证码呢?
如果要产生彩色的验证码,那么就代表在网页上的表现形式就是1AQ9这种形式了,那么就代表网页中的源代码的表现也就只能为<span style=”color:rgb(x,y,z)”>x</span>!原因很简单,因为四个数字的颜色是不同的!当然,除了span标记,也可以由其他的标记来代替!如b、i、strong、em等内联标记!
我们再来讨论一个问题:如果有多个页面都要使用随机数的话,每个页面都写这么多代码,这个工作量是可想而知的!那么最好的解决方法就是:首先将其封装成自定义函数,并且其存储在某一个文档内,然后,我们想调用该函数的话,我们只需要调用该文件就可以了(还记得包含文件吗?)!
好了,可以工作了!
[align=left]function random()[/align]
[align=left] [/align]
[align=left]{[/align]
[align=left] [/align]
[align=left] $chars = "0123456789"; [/align]
[align=left] [/align]
[align=left] for($i=0;$i<4;$i++)[/align]
[align=left] [/align]
[align=left] {[/align]
[align=left] [/align]
[align=left] $char = substr($chars,rand(0,strlen($chars)-1),1); [/align]
[align=left] [/align]
[align=left] $randChar .= "<span style=\"color:rgb(".rand(50,180).",".rand(50,180).",".rand(50,180).")\">" . $char . "</span>"; [/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] return $randChar;[/align]
[align=left] [/align]
}
现在我们再将上面的函数来升一级,那就是:我们已经将随机数的长度固定了,最好的方法是我们将系统的配置存储在一个配置文件里,由用户来决定随机数的长度!
好了,我们来创建一个配置文件----config.include.php
$config[“random”][“length”] = 4;
那么现在的问题就是如何将$config[“random”][“length”]的变量引入到函数内部,那就需要在函数内部添加global关键词了!
那么函数就变成了
[align=left]function random()[/align]
[align=left] [/align]
[align=left]{[/align]
[align=left] [/align]
[align=left] global $config;[/align]
[align=left] $chars = "0123456789"; [/align]
[align=left] [/align]
[align=left] for($i=0;$i<$config["random"]["length"];$i++)[/align]
[align=left] [/align]
[align=left] {[/align]
[align=left] [/align]
[align=left] $char = substr($chars,rand(0,strlen($chars)-1),1); [/align]
[align=left] [/align]
[align=left] $randChar .= "<span style=\"color:rgb(".rand(50,180).",".rand(50,180).",".rand(50,180).")\">" . $char . "</span>"; [/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] return $randChar;[/align]
[align=left] [/align]
}
1、产生彩色的验证码
在上一篇文中,我们产生了随机的验证码, 但是我们在有的网站上看到的验证码是彩色的,那么,我们怎么来产生彩色的验证码呢?
如果要产生彩色的验证码,那么就代表在网页上的表现形式就是1AQ9这种形式了,那么就代表网页中的源代码的表现也就只能为<span style=”color:rgb(x,y,z)”>x</span>!原因很简单,因为四个数字的颜色是不同的!当然,除了span标记,也可以由其他的标记来代替!如b、i、strong、em等内联标记!
我们再来讨论一个问题:如果有多个页面都要使用随机数的话,每个页面都写这么多代码,这个工作量是可想而知的!那么最好的解决方法就是:首先将其封装成自定义函数,并且其存储在某一个文档内,然后,我们想调用该函数的话,我们只需要调用该文件就可以了(还记得包含文件吗?)!
好了,可以工作了!
[align=left]function random()[/align]
[align=left] [/align]
[align=left]{[/align]
[align=left] [/align]
[align=left] $chars = "0123456789"; [/align]
[align=left] [/align]
[align=left] for($i=0;$i<4;$i++)[/align]
[align=left] [/align]
[align=left] {[/align]
[align=left] [/align]
[align=left] $char = substr($chars,rand(0,strlen($chars)-1),1); [/align]
[align=left] [/align]
[align=left] $randChar .= "<span style=\"color:rgb(".rand(50,180).",".rand(50,180).",".rand(50,180).")\">" . $char . "</span>"; [/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] return $randChar;[/align]
[align=left] [/align]
}
现在我们再将上面的函数来升一级,那就是:我们已经将随机数的长度固定了,最好的方法是我们将系统的配置存储在一个配置文件里,由用户来决定随机数的长度!
好了,我们来创建一个配置文件----config.include.php
$config[“random”][“length”] = 4;
那么现在的问题就是如何将$config[“random”][“length”]的变量引入到函数内部,那就需要在函数内部添加global关键词了!
那么函数就变成了
[align=left]function random()[/align]
[align=left] [/align]
[align=left]{[/align]
[align=left] [/align]
[align=left] global $config;[/align]
[align=left] $chars = "0123456789"; [/align]
[align=left] [/align]
[align=left] for($i=0;$i<$config["random"]["length"];$i++)[/align]
[align=left] [/align]
[align=left] {[/align]
[align=left] [/align]
[align=left] $char = substr($chars,rand(0,strlen($chars)-1),1); [/align]
[align=left] [/align]
[align=left] $randChar .= "<span style=\"color:rgb(".rand(50,180).",".rand(50,180).",".rand(50,180).")\">" . $char . "</span>"; [/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] return $randChar;[/align]
[align=left] [/align]
}
相关文章推荐
- 产生彩色验证码_(javabean实现)
- 产生彩色验证码_(javabean实现)
- java 验证码_彩色验证码
- 网页验证码的产生和判断
- 【JSP】JSP彩色验证码的实现
- Struts中生成Action产生的图形验证码
- 用pil产生验证码出现:ImportError: The _imagingft C module is not installed
- 【转帖】随机彩色验证码,点击刷新效果
- 随机产生指定位数的验证码
- 随机产生验证码 简洁代码块
- JavaWeb---产生验证码续上一篇(登录)
- ASP 生成 彩色 可变长 验证码程序
- JAVA生成彩色验证码
- 无刷新仿google波形扭曲彩色Asp.net验证码
- 产生包含字母(区分大小写)或数字组成的验证码(c#)
- 网站上的验证码是怎么产生的?
- java产生六位数字验证码
- 产生验证码图片
- JSP彩色验证码
- C#的彩色验证码