PHP图形验证码源程序
2008-10-15 18:50
190 查看
本人在一位聂老师的帮助下做出了图形验证码,当然其中的许多代码也是借鉴别人的源码程序。
这是图形验证码的生成PHP源码,这个文件主要是为了生成一个图像验证码。
<?php
//authimg.php
Header("Content-type: image/gif");
session_start();
//生成验证码图片
Header("Content-type: image/PNG");
$im = imagecreatetruecolor(60,18);
$back = ImageColorAllocate($im, 245,245,245);
imagefill($im,0,0,$back); //背景
$string ="ABCDEFGHIJLKMNPQRSTUVWXYZ0123456789";
srand((double)microtime()*1000000);
$vcodes="";
//生成4位数字
for($i=0;$i<6;$i++){
$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));
$authnum=$string[rand(0,34)];
$vcodes.=$authnum;
imagestring($im, 5, 2+$i*10, 1, $authnum, $font);
}
for($i=0;$i<100;$i++) //加入干扰象素
{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
ImagePNG($im);
ImageDestroy($im);
$_SESSION['vcodes'] = $vcodes;
?>
然后就在页面中调用上面的图形验证码
<?php
@header("content-type:text/html; charset=UTF-8");
//authpage.php
//打开session
session_start();
?>
<script language="javascript">
function reloadImage(url)
{
document.images["img1"].src=url;
}
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>polaris validate</title>
</head>
<body>
<form action="checkNumber.php" id="form">
<table align="center">
<tr>
<td align="right">Validate :</td>
<td> </td>
<td><input name="imgId" type="text">
<img src="authimg.php" id="imgId" alt="看不清?请刷新" onClick="this.src=this.src+'?'"/> </td>
</tr>
</table>
</form>
</body>
</html>
这样就可以显示出图形验证码,同时还要进行验证,这就进入了验证页面
<?php @header("content-type:text/html; charset=GB2312");
//checkNumber.php
//开启session
session_start();
//得到用户输入的验证码,并转换成大写
$code1=$_SESSION["vcodes"];
$imgId_req = $_REQUEST['imgId'];
$imgId_req = strtoupper($imgId_req);
//验证该字符串是否注册了session变量
if ($imgId_req==$code1) {
echo "<font color=blue >通过验证!</font>";
?>
<script language=javascript>
location.href='http://www.google.com';
</script>
<?php
}
else {
echo "<font color=red >验证错误!</font>";
?>
<script language=javascript>
location.href='authpage.php';
</script>
<?php
exit ;
}
//关闭session,以清除所有注册过的变量
session_destroy();
?>
效果如下:
这是图形验证码的生成PHP源码,这个文件主要是为了生成一个图像验证码。
<?php
//authimg.php
Header("Content-type: image/gif");
session_start();
//生成验证码图片
Header("Content-type: image/PNG");
$im = imagecreatetruecolor(60,18);
$back = ImageColorAllocate($im, 245,245,245);
imagefill($im,0,0,$back); //背景
$string ="ABCDEFGHIJLKMNPQRSTUVWXYZ0123456789";
srand((double)microtime()*1000000);
$vcodes="";
//生成4位数字
for($i=0;$i<6;$i++){
$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));
$authnum=$string[rand(0,34)];
$vcodes.=$authnum;
imagestring($im, 5, 2+$i*10, 1, $authnum, $font);
}
for($i=0;$i<100;$i++) //加入干扰象素
{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
ImagePNG($im);
ImageDestroy($im);
$_SESSION['vcodes'] = $vcodes;
?>
然后就在页面中调用上面的图形验证码
<?php
@header("content-type:text/html; charset=UTF-8");
//authpage.php
//打开session
session_start();
?>
<script language="javascript">
function reloadImage(url)
{
document.images["img1"].src=url;
}
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>polaris validate</title>
</head>
<body>
<form action="checkNumber.php" id="form">
<table align="center">
<tr>
<td align="right">Validate :</td>
<td> </td>
<td><input name="imgId" type="text">
<img src="authimg.php" id="imgId" alt="看不清?请刷新" onClick="this.src=this.src+'?'"/> </td>
</tr>
</table>
</form>
</body>
</html>
这样就可以显示出图形验证码,同时还要进行验证,这就进入了验证页面
<?php @header("content-type:text/html; charset=GB2312");
//checkNumber.php
//开启session
session_start();
//得到用户输入的验证码,并转换成大写
$code1=$_SESSION["vcodes"];
$imgId_req = $_REQUEST['imgId'];
$imgId_req = strtoupper($imgId_req);
//验证该字符串是否注册了session变量
if ($imgId_req==$code1) {
echo "<font color=blue >通过验证!</font>";
?>
<script language=javascript>
location.href='http://www.google.com';
</script>
<?php
}
else {
echo "<font color=red >验证错误!</font>";
?>
<script language=javascript>
location.href='authpage.php';
</script>
<?php
exit ;
}
//关闭session,以清除所有注册过的变量
session_destroy();
?>
效果如下:
相关文章推荐
- php图形图像函数的运用-验证码
- 完整的PHP图形验证码程序源码
- php图形验证码
- (转)PHP PEAR中用Text_Password轻松实现随机密码以及图形验证码
- php生成图形验证码几种方法小结
- php生成图形验证码几种方法小结
- php 图形验证码的3种方法
- php + redis 完成api接口的图形验证码
- PHP生成图形验证码
- php图形图像处理之生成验证码
- PHP 中文图形验证码
- 实作PHP表单图形验证码验证码
- PHP图形验证码的具体实现方法
- PHP实现生成带背景的图形验证码功能
- PHP图形验证码程序
- PHP图形图像的典型应用 --常用图像的应用(验证码)
- 一个简单的php图形验证码生成程序
- php添加图形验证码
- PHP制作图形验证码代码分享
- PHP 图形图像操作(生成图像验证码、添加水印等)