专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » asp.net生成验证码:PHP生成带有雪花背景的验证码 »正文

asp.net生成验证码:PHP生成带有雪花背景的验证码

来源: 发布时间:星期二, 2008年12月30日 浏览:2次 评论:0
在http://www.dev-club.com/club/bbs/showEssence.asp?id=20768&page=1基础上修改

<?php
session_start;
session_register("login_check_number");
//昨晚看到了chianren上验证码效果就考虑了图片长、宽
$img_width=40;
($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);
}

?>

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: