您的位置:首页 > 编程语言 > PHP开发

PHP实现图片验证码

2013-09-18 11:41 246 查看
<tr>
<td>输入验证码:</td><td><input type="text" name="checkcode" size="10" /></td>
</tr>
<tr>
<td>点图变换</td><td><img src ="imageCheckCode.fun.php" onclick="this.src='imageCheckCode.fun.php?change='+Math.random()" /></td>
</tr>

以上是普通界面,img引用图片验证码生成文件,js的onclick事件响应用户点击图片更换验证码的需求

以下是图片验证码生成文件

<?php

//图像验证码函数
function imageCheckCode()
{
//首先生成1到15四个随机数,并将其转换成十六进制数
$checkCode = '';
for($i =0;$i < 4;$i++)
{
$checkCode .= dechex(rand(1,15));
}

//存入到session
session_start();
$_SESSION['CHECK_CODE'] = $checkCode;

//创建画布,设定长(x)宽(y)
$image = imagecreatetruecolor(100,20);

//设置背景颜色
//$bgColor = imagecolorallocate($image,0,0,255);
//设置文字颜色
$textColor = imagecolorallocate($image,255,255,255);

//水平绘制验证码字符串,随机字体大小,随机xy起始位置
imagestring($image,rand(1,10),rand(10,50),rand(1,5),$checkCode,$textColor);

//设置干扰线颜色(颜色设为随机值)
//$lineColor = imagecolorallocate($image,rand(0,255),rand(0,255),rand(0,255));

//随机绘制干扰线(设置干扰线是为了防止侦听,设置验证码随机位置也是为了防止侦听)
for($i = 0;$i < 10;$i++)
{
imageline($image,rand(0,100),rand(0,20),rand(0,100),rand(0,20),imagecolorallocate($image,rand(0,255),rand(0,255),rand(0,255)));
}

//输出图像
header('content-type: image/png');
imagepng($image);

//销毁图像
imagedestroy($image);

}

imageCheckCode();

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 验证码 图片