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 相关文章推荐
session 的生命周期是多长
Oct 09 PHP
谈谈PHP语法(3)
Oct 09 PHP
php项目打包方法
Feb 18 PHP
PHP 创建文件(文件夹)以及目录操作代码
Mar 04 PHP
php+js实现图片的上传、裁剪、预览、提交示例
Aug 27 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 PHP
smarty模板引擎中变量及变量修饰器用法实例
Jan 22 PHP
wampserver改变默认网站目录的办法
Aug 05 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
phpMyAdmin无法登陆的解决方法
Apr 27 PHP
Laravel-admin之修改操作日志的方法
Sep 30 PHP
Thinkphp集成抖音SDK的实现方法
Apr 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写杨辉三角实例代码
2011/07/17 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
2014/08/14 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
js 对象是否存在判断
2009/07/15 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
js代码实现随机颜色的小方块
2015/07/30 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
python 生成不重复的随机数的代码
2011/05/15 Python
python3的print()函数的用法图文讲解
2019/07/16 Python
Django框架视图介绍与使用详解
2019/07/18 Python
python使用minimax算法实现五子棋
2019/07/29 Python
详解python中的index函数用法
2019/08/06 Python
python模块导入的方法
2019/10/24 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
python openCV自制绘画板
2020/10/27 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
应届中专生自荐书范文
2014/02/13 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
刊首寄语大全
2014/04/11 职场文书
分公司负责人任命书
2014/06/04 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
表扬信格式模板
2015/05/05 职场文书
关于环保的宣传稿
2015/07/23 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书
python通过函数名调用函数的几种方法总结
2021/06/07 Python
Django框架中表单的用法
2022/06/10 Python
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS