设为首页
加为收藏
联系我们
  • 电子商务
  • 软件网络
  • 看天下
  • 营销财经
  • 关闭导航
  • 网络编程
  • 数据库类
  • 关闭导航
  • 网络编程
  • 社交礼仪
  • 数据库类
  • 人文地理
  • 关闭导航
  • 编程工具
  • 电子书籍
  • 关闭导航
  • 生活休闲
  • 演讲讲座
  • 视频教程
  • 经典影视
  • 关闭导航
  • 您的位置: 首页 > 入门教程 > 网络编程 > PHP

    图片验证码

    时间: 2008-09-10  信息来源: 梧桐树下  作者: 编辑整理  点击数:

    内容提示:表单提交页面图片验证码的应用主要是为了防止恶意注册等用户行为,本文将介绍一个漂亮的图片验证功能的实现.
    确认码生成文件checkNum_session.php

     <?
    Header("Content-type:image/png");
    //
    定义header,声明图片文件,最好是png,无版权之扰; 
    //生成新的四位整数验证码

    session_start();//开启session;
    $authnum_session = ''
    $str = 'abcdefghijkmnpqrstuvwxyz1234567890'

    //定义用来显示在图片上的数字和字母;

    $l = strlen($str); //得到字串的长度; 
    //循环随机抽取四位前面定义的字母和数字; 

    for($i=1;$i<=4;$i++)

    $num=rand(0,$l-1
    ); 
    //
    每次随机抽取一位数字;从第一个字到该字串最大长度,
    //减1是因为截取字符是从0开始起算;这样34字符任意都有可能排在其中;

    $authnum_session.= $str[$num]; 
    //将通过数字得来的字符连起来一共是四位;

    }
    session_register("authnum_session"
    );
    //
    用session来做验证也不错;注册session,名称为authnum_session,
    //其它页面只要包含了该图片
    //即可以通过$_SESSION["authnum_session"]来调用

    //生成验证码图片,

    srand((double)microtime()*1000000);
    $im = imagecreate(50,20);//
    图片宽与高; 
    //主要用到黑白灰三种色;

    $black = ImageColorAllocate($im, 0,0,0);
    $white = ImageColorAllocate($im, 255,255,255
    );
    $gray = ImageColorAllocate($im, 200,200,200
    ); 
    //将四位整数验证码绘入图片

    imagefill($im,68,30,$gray);
    //如不用干扰线,注释就行了;

    $li = ImageColorAllocate($im, 220,220,220);
    for($i=0;$i<3;$i++

    {
    //加入3条干扰线;也可以不要;视情况而定,因为可能影响用户输入; 

    imageline($im,rand(0,30),rand(0,21),rand(20,40),rand(0,21),$li);

    //字符在图片的位置;

    imagestring($im, 5, 8, 2, $authnum_session, $white);
    for($i=0;$i<90;$i++
    )
    {
    //加入干扰象素

    imagesetpixel($im, rand()%70 , rand()%30 , $gray);
    }
    ImagePNG(
    $im
    );
    ImageDestroy(
    $im
    );
    ?> 
     
    Tags: 图片,验证码 责任编辑:aboutstudy
     
      关于我们 友情链接 网站地图 广告服务 联系我们 管理登陆  
      鄂ICP备07014143号  
      Powered by EmpireCMS 5.0  
      Template designed by 直来直往.
      联系信息: QQ 365931563 Email:jiangtian001@sina.com  
      ©CopyRight 2007-2008, SKDE.CN, Inc. All Rights Reserved