首页 » 建站技术 » PHP 技术 » 浏览内容

随机生成图像验证码


2005-12-01 17:05:15 6,025 0 发表评论 字体: 作者:C.K.

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

From:http://phpu.blogchina.com/471444.html

下载地址

实际效果:

 底色随机变化

根据以前的验证码生成修改而来,需要GD库的支持
特点:
1 安全性较强,随机背景加随机像素点绘制
2 生成四位随机数字(可重定义)
3 验证码存入session,直接取值即可比较
4 可以带参数调用。(默认是54×22的png图像)
      t 图像格式 png gif jpeg 等
      w 图像宽度
      h 图像高度

调用方式如下:

代码如下:

#———————————————-
# 文 件: verify.php
# 功 能: 认证码显示
# Liu21st,liu21st@126.com
# 最后修改: 2004-05-07 10:57:30 Liu21st
#———————————————-
$type=($_GET['t'])?($_GET['t']):'png';
$width=($_GET['w'])?($_GET['w']):54;
$height=($_GET['h'])?($_GET['h']):22;
session_start();
Header(“Content-type: image/”.$type);
srand((double)microtime()*1000000);
$randval = sprintf(“%04d”, rand(0,9999));
session_register('session_verify');
if ( is_array($_SESSION) ) {
$_SESSION['session_verify'] = $randval;
$session_verify =$_SESSION['session_verify'];
}
else {
$session_verify = $randval;
}
if ( $type!='gif' && function_exists('imagecreatetruecolor')) {
$im = @imagecreatetruecolor($width,$height);
}else {
$im = @imagecreate($width,$height);
}
$r = Array(225,255,255,223);
$g = Array(225,236,237,255);
$b = Array(225,236,166,125);
$key = rand(0,3);
$backColor = ImageColorAllocate($im, $r[$key],$g[$key],$b[$key]);//背景色(随机)
$borderColor = ImageColorAllocate($im, 0, 0, 0);//边框色
$pointColor = ImageColorAllocate($im, 0, 255, 255);//点颜色
@imagefilledrectangle($im, 0, 0, $width – 1, $height – 1, $backColor);
@imagerectangle($im, 0, 0, $width-1, $height-1, $borderColor);
$stringColor = ImageColorAllocate($im, 255,51,153);
for($i=0;$i<=10;$i++){
$pointX = rand(2,$width-2);
$pointY = rand(2,$height-2);
@imagesetpixel($im, $pointX, $pointY, $pointColor);
}
@imagestring($im, 5, 8, 3, $randval, $stringColor);
$ImageFun='Image'.$type;
$ImageFun($im);
@ImageDestroy($im);
?>

    网站统计 Statistics

    • 创建时间: 2005年1月3日 距今4944 天
    • 日志总数: 2461
    • 评论总数: 630
    • 标签总数: 654
    • 链接总数: 273
    • 最后更新: 2017-7-1 18:16:33
    • 您是本站第 13710794 位访客

    广告区 Guǎng Gào