废话不说,直接上代码:
<?php
Header("Content-type: image/gif");
/*
* 初始化
*/
$border = 0; //是否要边框 1要:0不要
$how = 4; //验证码位数
$w = $how * 15; //图片宽度
$h = 20; //图片高度
$fontsize = 5; //字体大小
$alpha = "abcdefghijkmnopqrstuvwxyz"; //验证码内容1:字母
$number = "023456789"; //验证码内容2:数字
$randcode = ""; //验证码字符串初始化
srand((double) microtime() * 1000000); //初始化随机数种子
$im = ImageCreate($w, $h); //创建验证图片
/*
* 绘制基本框架
*/
$bgcolor = ImageColorAllocate($im, 255, 255, 255); //设置背景颜色
ImageFill($im, 0, 0, $bgcolor); //填充背景色
if ($border) {
$black = ImageColorAllocate($im, 0, 0, 0); //设置边框颜色
ImageRectangle($im, 0, 0, $w -1, $h -1, $black); //绘制边框
}
/*
* 逐位产生随机字符
*/
for ($i = 0; $i < $how; $i++) {
$alpha_or_number = mt_rand(0, 1); //字母还是数字
$str = $alpha_or_number ? $alpha : $number;
$which = mt_rand(0, strlen($str) - 1); //取哪个字符
$code = substr($str, $which, 1); //取字符
$j = !$i ? 4 : $j +15; //绘字符位置
$color3 = ImageColorAllocate($im, mt_rand(0, 100), mt_rand(0, 100), mt_rand(0, 100)); //字符随即颜色
ImageChar($im, $fontsize, $j, 3, $code, $color3); //绘字符
$randcode .= $code; //逐位加入验证码字符串
}
/*
* 添加干扰
*/
for ($i = 0; $i < 5; $i++) //绘背景干扰线
{
$color1 = ImageColorAllocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255)); //干扰线颜色
ImageArc($im, mt_rand(-5, $w), mt_rand(-5, $h), mt_rand(20, 300), mt_rand(20, 200), 55, 44, $color1); //干扰线
}
for ($i = 0; $i < $how * 40; $i++) //绘背景干扰点
{
$color2 = ImageColorAllocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255)); //干扰点颜色
ImageSetPixel($im, mt_rand(0, $w), mt_rand(0, $h), $color2); //干扰点
}
//把验证码字符串写入session
session_start();
$_SESSION['randcode'] = $randcode;
/*绘图结束*/
Imagegif($im);
ImageDestroy($im);
?>
分享到:
相关推荐
PHP实例教程-网页登陆验证码的实现,通常验证码做的不好看,这段程序教你做一个好看且实用的验证码。
这是一个用PHP生成GIF动画来实现动态图片验证码的程序,非常实用,是php用户注册登录界面经常需要用到的验证码程序,有需要GIF动态图片验证码功能的朋友可以收藏一下。 第一步:创建ImageCode.php文件,验证码生成...
实例047 同一个页面中的多表单提交 66 实例048 获取表单中提交的所有数据 68 实例049 以文件域的形式显示数据信息 70 第3章 CSS与JavaScript脚本的应用 73 3.1 文字特效 74 实例050 逐个闪烁的文字 74 ...
程序本身包含一个PC版网站和一个手机版网站,如果把手机网站首页网址嵌入到WebView中,可以在1小时之内制作成功一个安卓版APP安装包,分分钟就能拥有一个自己的APP应用,肯定很拉风吧?后台管理系统支持移动设备,可...
主要功能: 1、验证码发帖,有效避免垃圾信息; 2、过滤HTML代码,运行更安全; 3、后台可将留言置顶、删除、回复、编辑等常规操作; 4、可设置留言版标题、留言版LOGO、每页显示留言条数等...
10.3 一个简单的TCP/IP服务器端和客户端实例讲解 10.4 本章小结 第11章 用户登录注册模块 11.1 数据库设计 11.2 最基本的注册模块 11.2.1 页面效果 11.2.2 代码实现 11.3 带验证码的注册模块 11.3.1 页面效果 11.3.2...
可实现留言、回复、审核等功能,页面设计简洁大方,功能实用,适用于各类网站添加一个意见反馈的功能,也可用于网上咨询、公告发布等用途,甚至通过修改模板还可以做成一个简单的微博系统,如果你是一个PHP新手,...
一个设计合理,界面优美的网上留言程序能从侧面体现网站良好的服务,给来访用户留下美好的印象,增强用户对网站的信心。 网上留言系统利用网络一定的时效性和广泛的传播面,可以方便人与人之间的信息交流和互动。...
程序名称:多多留言本 程序版本:v1.2 运行环境:php+mysql 程序制作:QQ:249834575 程序演示:http://www.codefans.net/guestbook/ 官方网站:http://www.codefans.net/ 2008年07月10日多多留言本 v1.2正式发布:...
这是一款利用php与mysql数据库实现的用户注册与登录代码,功能也是比较简单实用的用户注册程序,同时也加了用户登录时验证码程序,这样做就安全了很多,代码如下: 复制代码 代码如下:<!doctype html public “-//w3c/...
解答学生问题--一个ip绑定多个域名 8-19 2.php运行过程时序图 php书写规范 8-19 3.php基本语法介绍 php数据类型介绍 8-19 4.整型细节说明 8-19 5.布尔细节 浮点数细节 字符串细节 算术运算符① 8-19 6.算术运算符② ...
实例128 获取数组中最后一个元素 158 实例129 去除数组中的重复元素 158 实例130 字符串与数组的转换 159 实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 ...
实例128 获取数组中最后一个元素 158 实例129 去除数组中的重复元素 158 实例130 字符串与数组的转换 159 实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 ...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
国微CMS学校网站系统是一个以php MySQL进行开发的学校网站系统。国微学校方案重点为大学、中学、技校提供高性能解决方案,可快速将学校信息化迈入实用高效的水平。功能包括:精品课程系统、录取查询系统、学籍查询...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
这个留言本的制作的目的是是制作一个功能齐全,实用美观,便于嵌入网站的留言本。这个留言本不用安装,直接打开index.asp就可以使用。 实现功能: 1.access高效分页功能 2.防止sql注入功能 3.留言审核开关功能 4...
友情提示:分流上传功能还有下载地址优化功能对虚拟主机要求较高,,如果程序无法正常运行,请将将这两项功能关闭. 经测试,关闭分流上传功能(也就是多服务器上传)和下载地址优化后,可以在99%的虚拟主机上完美...