首页 » 后端 » PHP » 正文

PHP图片验证码[附源码]

发布者:站点默认
2011/01/13 浏览数(1,971) 分类:PHP PHP图片验证码[附源码]已关闭评论

说明:

使用PHP的GD库生成图片验证码,可设置字符长度,程序自动重新设置图片总体宽度、含杂点、背景和文字颜色随机更换。不会出现容易产生混淆的“1、l、I、o、O、0”。

效果:

PHP图片验证码演示图

PHP图片验证码演示图

用法:

前台:

<img src="verifyCode.img.php" 
onclick="this.src='verifyCode.img.php?'+Math.random();" />

后台:

<?php
session_start();
if ($_POST['verifyCode'] == $_SESSION['verify']){
	echo '验证码正确';
}else{
	echo '验证码错误';
}
?>

注:“verifyCode”来自“<input name=”verifyCode” />”,“verify”来自“verifyCode.img.php”中的“$verifySessionName”。

代码:

<?php
session_start();
$verifySessionName = 'verify'; // session名称,用于后台对比验证
$verifyTextLength = 4; // 显示的验证码图片上的字符数
$rand = '';
for ($i = 0; $i &lt; $verifyTextLength; $i++) {
$rand .= dechex(rand(2, 15));
}
$rand = '';
for ($i = 0; $i < $verifyTextLength; $i++) {
	$rand .= dechex(rand(2, 15));
}
$rand = strtoupper($rand);
$_SESSION[$verifySessionName] = $rand;
$img = imagecreatetruecolor($verifyTextLength * 10, 20);
$bg = imagecolorallocate($img, rand(0, 150), rand(0, 150), rand(0, 150));
imagefill($img, 0, 0, $bg);
$fg = imagecolorallocate($img, rand(155, 255), rand(155, 255), rand(155, 255));
imagestring($img, 6, 2, 2, $rand, $fg);
for ($i = 0; $i < 200; $i++) { //加入干扰象素
	$randcolor = ImageColorallocate($img, rand(0, 255), rand(0, 255), rand(0, 255));
	imagesetpixel($img, rand() % 60, rand() % 40, $randcolor);
}
header('content-type:image/gif');
imagegif($img);
?>

<完>

点击返回顶部
  1. 留言
  2. 联系方式