PHP验证码

本文介绍了一段使用PHP生成验证码的脚本代码。该脚本通过设置session参数、定义图片尺寸及样式等属性来创建一个包含随机数字的验证码图片,并将其存储在session中以便后续验证。此外,还实现了背景噪声及边框效果。
<?php
ini_set('session.use_cookies',1);
ini_set('session.gc_maxlifetime','86400');
ini_set('session.cookie_lifetime',0);
@session_start();
$width = "70";
$height = "20";
$len = "4";
$bgcolor = "#eeeeee";
$noise = true;
$noisenum = 100;
$border = true;
$bordercolor = "#000000";
$image = imageCreate($width, $height);
$back = getcolor($bgcolor);
imageFilledRectangle($image, 0, 0, $width, $height, $back);
$size = $width/$len;
if($size>$height) $size=$height;
$left = ($width-$len*($size+$size/10))/$size;
$code="";
for ($i=0; $i<$len; $i++)
{
    $randtext = rand(0, 9);
    $code .= $randtext;
	$textColor = imagecolorallocate($image, rand(0, 100), rand(0, 100), rand(0, 100));
	$randsize = rand($size-$size/10, $size+$size/10);
	$location = $left+($i*$size+$size/10)+4;
	imagestring($image, 5, $location, 2,  $randtext, $textColor);
}
if($noise == true) setnoise();
$_SESSION['identifycode'] = $code;
$bordercolor = getcolor($bordercolor); 
if($border==true) imageRectangle($image, 0, 0, $width-1, $height-1, $bordercolor);
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);
function getcolor($color)
{
     global $image;
     $color = preg_replace("/#/i","",$color);
     $r = $color[0].$color[1];
     $r = hexdec ($r);
     $b = $color[2].$color[3];
     $b = hexdec ($b);
     $g = $color[4].$color[5];
     $g = hexdec ($g);
     $color = imagecolorallocate ($image, $r, $b, $g); 
     return $color;
}
function setnoise()
{
	global $image, $width, $height, $back, $noisenum;
	for ($i=0; $i<$noisenum; $i++){
		$randColor = imageColorAllocate($image, rand(0, 255), rand(0, 255), rand(0, 255));  
		imageSetPixel($image, rand(0, $width), rand(0, $height), $randColor);
	} 
}
?> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值