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


Posted in PHP onOctober 09, 2006

效果参考(附源码)http://mail.htjs.net/yanzhengma/test.php

<?session_start();?>
<FORM METHOD=POST ACTION="">
<input type=text name=number maxlength=4><img src="YanZhengMa.php?act=init">
<INPUT TYPE="submit" name="sub">
</FORM>
<?
//检验校验码
if(isset($HTTP_POST_VARS["sub"
])):
if(
$HTTP_POST_VARS["number"] != $HTTP_SESSION_VARS[login_check_number] || empty($HTTP_POST_VARS["number"
])){
    echo 
"校验码不正确!" 
;
}else{
    echo
"验证码通过!"
;
}
endif;
show_source('test.php'
);
//以上本页的源码

//以下是生成验证码的源码
show_source('YanZhengMa.php');
?>
<?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($aimg255,255,255);            
//图片底色,ImageColorAllocate第1次定义颜色PHP就认为是底色了
    
$black ImageColorAllocate($aimg0,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($aimgmt_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 相关文章推荐
main.php
Dec 09 PHP
菜鸟学PHP之Smarty入门
Jan 04 PHP
php时间不正确的解决方法
Apr 09 PHP
linux php mysql数据库备份实现代码
Mar 10 PHP
Smarty Foreach 使用说明
Mar 23 PHP
基于php验证码函数的使用示例
May 03 PHP
header导出Excel应用示例
Jan 24 PHP
php循环创建目录示例分享(php创建多级目录)
Mar 04 PHP
PHP判断表单复选框选中状态完整例子
Jun 24 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
PHP实现导出excel数据的类库用法示例
Oct 15 PHP
thinkphp5 模型实例化获得数据对象的教程
Oct 18 PHP
一个可查询所有表的“通用”查询分页类
Oct 09 #PHP
Get或Post提交值的非法数据处理
Oct 09 #PHP
用Socket发送电子邮件
Oct 09 #PHP
编写自己的php扩展函数
Oct 09 #PHP
PHP输出控制功能在简繁体转换中的应用
Oct 09 #PHP
PHP 中执行系统外部命令
Oct 09 #PHP
PHP实现文件安全下载
Oct 09 #PHP
You might like
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
Javascript 学习笔记 错误处理
2009/07/30 Javascript
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
Python中max函数用法实例分析
2015/07/17 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
python函数定义和调用过程详解
2020/02/09 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
电子商务应届生求职信
2013/11/16 职场文书
大学生专科学习生活的自我评价
2013/12/07 职场文书
企业诚信承诺书
2014/05/23 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
高中运动会广播稿
2014/09/16 职场文书
计划生育证明书写要求
2014/09/17 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
自我评价优缺点范文
2015/03/11 职场文书
英文投诉信格式
2015/07/03 职场文书
小学教师教育随笔
2015/08/14 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书