PHP生成带有雪花背景的验证码


Posted in PHP onSeptember 28, 2008

<?php
session_start();
session_register("login_check_number");
//昨晚看到了chianren上的验证码效果,就考虑了一下,用PHP的GD库完成了类似功能
//先成生背景,再把生成的验证码放上去
$img_height=120; //先定义图片的长、宽
$img_width=40;
if($HTTP_GET_VARS["act"]== "init"){
//srand(microtime() * 100000);//PHP420后,srand不是必须的
for($Tmpa=0;$Tmpa<4;$Tmpa++){
$nmsg.=dechex(rand(0,15));
}//by sports98

$HTTP_SESSION_VARS[login_check_number] = $nmsg;
//$HTTP_SESSION_VARS[login_check_number] = strval(mt_rand("1111","9999")); //生成4位的随机数,放入session中
//谁能做下补充,可以同时生成字母和数字啊??----由sports98完成了
$aimg = imageCreate($img_height,$img_width); //生成图片
ImageColorAllocate($aimg, 255,255,255); //图片底色,ImageColorAllocate第1次定义颜色PHP就认为是底色了
$black = ImageColorAllocate($aimg, 0,0,0); //定义需要的黑色
ImageRectangle($aimg,0,0,$img_height-1,$img_width-1,$black);//先成一黑色的矩形把图片包围
//下面该生成雪花背景了,其实就是在图片上生成一些符号
for ($i=1; $i<=100; $i++) { //先用100个做测试
imageString($aimg,1,mt_rand(1,$img_height),mt_rand(1,$img_width),"*",imageColorAllocate($aimg,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
//哈,看到了吧,其实也不是雪花,就是生成*号而已。为了使它们看起来"杂乱无章、5颜6色",就得在1个1个生成它们的时候,让它们的位置、颜色,甚至大小都用随机数,rand()或mt_rand都可以完成。
}
//上面生成了背景,现在就该把已经生成的随机数放上来了。道理和上面差不多,随机数1个1个地放,同时让他们的位置、大小、颜色都用成随机数~~
//为了区别于背景,这里的颜色不超过200,上面的不小于200
for ($i=0;$i<strlen($HTTP_SESSION_VARS[login_check_number]);$i++){
imageString($aimg, mt_rand(3,5),$i*$img_height/4+mt_rand(1,10),mt_rand(1,$img_width/2), $HTTP_SESSION_VARS[login_check_number][$i],imageColorAllocate($aimg,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
}
Header("Content-type: image/png"); //告诉浏览器,下面的数据是图片,而不要按文字显示
ImagePng($aimg); //生成png格式。。。嘿嘿效果蛮像回事的嘛。。。
ImageDestroy($aimg);
}
?>

PHP 相关文章推荐
smtp邮件发送一例
Oct 09 PHP
dedecms中常见问题修改方法总结
Mar 21 PHP
php zend 相对路径问题
Jan 12 PHP
PHP $_FILES函数详解
Mar 09 PHP
php输入流php://input使用示例(php发送图片流到服务器)
Dec 25 PHP
PHP基本语法总结
Sep 06 PHP
php ci 获取表单中多个同名input元素值的代码
Mar 25 PHP
php微信开发接入
Aug 27 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
Feb 23 PHP
PHP实现生成推广海报的方法详解
Mar 14 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
May 02 PHP
PHP实现rar解压读取扩展包小结
Jun 03 PHP
PHP编实现程动态图像的创建代码
Sep 28 #PHP
php 三维饼图的实现代码
Sep 28 #PHP
PHP控制网页过期时间的代码
Sep 28 #PHP
PHP集成FCK的函数代码
Sep 27 #PHP
php横向重复区域显示二法
Sep 25 #PHP
php下防止单引号,双引号在接受页面转义的设置方法
Sep 25 #PHP
PHP伪造referer实例代码
Sep 20 #PHP
You might like
php 图像函数大举例(非原创)
2009/06/20 PHP
php生成图形验证码几种方法小结
2013/08/15 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
2016/10/22 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
2012/01/13 Javascript
理解javascript异步编程
2016/01/27 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
2017/02/10 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
python实现哈希表
2014/02/07 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
解决python报错MemoryError的问题
2018/06/26 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
python自动点赞功能的实现思路
2020/02/26 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
Discard Protocol抛弃协议的作用是什么
2015/10/10 面试题
建筑项目策划书
2014/01/13 职场文书
总经理秘书岗位职责
2014/03/17 职场文书
企业节能减排实施方案
2014/03/19 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
班主任寄语2016
2015/12/04 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
会计入职心得体会
2016/01/22 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
Python中X[:,0]和X[:,1]的用法
2021/05/10 Python
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
科普 | 业余无线电知识-波段篇
2022/02/18 无线电
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers