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 相关文章推荐
CodeIgniter php mvc框架 中国网站
May 26 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
Apr 15 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
深入PHP获取随机数字和字母的方法详解
Jun 06 PHP
php生成图片缩略图的方法
Apr 07 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
Jul 01 PHP
PHP实现上传文件并存进数据库的方法
Jul 16 PHP
ThinkPHP函数详解之M方法和R方法
Sep 10 PHP
分享php邮件管理器源码
Jan 06 PHP
PHP微信开发之有道翻译
Jun 23 PHP
在laravel中实现将查询的对象转换为多维数组的函数
Oct 21 PHP
PHP实现简单注册登录系统
Dec 28 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中函数内引用全局变量的方法
2008/10/20 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
使用php计算排列组合的方法
2013/11/13 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
PHP的mysqli_rollback()函数讲解
2019/01/23 PHP
JS request函数 用来获取url参数
2010/05/17 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
详解babel升级到7.X采坑总结
2019/05/12 Javascript
Vue 请求传公共参数的操作
2020/07/31 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
剖析Python的Twisted框架的核心特性
2016/05/25 Python
Python 中导入csv数据的三种方法
2018/11/01 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
如何在python中写hive脚本
2019/11/08 Python
python异常处理try except过程解析
2020/02/03 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
Python实现播放和录制声音的功能
2020/08/12 Python
编写python代码实现简单抽奖器
2020/10/20 Python
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
数控专业个人求职信范例
2013/11/29 职场文书
给老师的检讨书
2014/02/11 职场文书
大学社团活动总结
2014/04/26 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
2016大学军训心得体会
2016/01/11 职场文书
Python3 如何开启自带http服务
2021/05/18 Python
SpringBoot快速入门详解
2021/07/21 Java/Android