zoukankan      html  css  js  c++  java
  • 刚写了一个PHP的高效验证码函数

    我不喜欢因为一个简单的验证码就大费周章,甚至连font字库文件都有,常常发现有的程序不过才两兆多点,而字库占去了至少1.5兆,唉!搞不懂那位是怎么想的,简直就是太有创意了
    我不喜欢,所以自己写了一个简单而又漂亮的高效的.

    //如果要轉載本文請注明出處,免的出現版權紛爭,我不喜歡看到那種轉載了我的作品卻不注明出處的人 Seven{See7di#Gmail.com}

    <?php
    $work=AddsLashes($_REQUEST["work"]);
    Switch ($work){
    Case "cod":
    _cod();
    Break;
    Default:
    _main();
    Break;
    }
    //------------------------------------------------*
    Function _main(){
    Session_start();
    Echo "<img src='?work=cod' width='68' height='20' onclick=\"this.src='?work=cod&'+Math.random(10)\" style='cursor:pointer;'>".$_SESSION['cod'];
    }
    //------------------------------------------------*
    Function _cod(){
    OB_start();
    OB_clean();
    For($i=0;$i<4;$i++){//dechex将10进制转为16进制
    $num .= Dechex(Mt_Rand(1,15));
    }

    Session_start();$_SESSION['cod']=$num;

    $img=Imagecreatetruecolor(60,20);//建立画布
    $bgc=Imagecolorallocate($img,255,255,255);//创建图片背景颜色
    Imagefill($img,0,0,$bgc);

    For($i=0;$i<Mt_Rand(0,5);$i++){//添加随机线条
    $linc=Imagecolorallocate($img,200,200,Mt_Rand(0,255));
    Imageline($img,Mt_Rand(5,55),Mt_Rand(5,15),Mt_Rand(5,55),Mt_Rand(5,15),$linc);
    }

    For($i=0;$i<2;$i++){
    $col=Imagecolorallocate($img,Mt_Rand(10,60),Mt_Rand(100,150),Mt_Rand(0,200));//字体颜色
    Imagestring($img,6,(10+$i*9),(2+$i*2),($num[$i]."-".$num[($i+2)]),$col);//写入文字
    }

    Header('content-type:Image/png');
    Imagepng($img);
    Die();
    }
    ?>
  • 相关阅读:
    (转)二步实现 远程连接 阿里云SqlServer 2012 数据库服务器
    浅谈C#在网络波动时防重复提交
    面向 Kubernetes 编程: Kubernetes 是下一代操作系统
    C#并行编程(2):.NET线程池
    C#并行编程(1):理解并行
    iOS 动画总结----UIView动画
    iOS开发之各种动画各种页面切面效果
    iOS动画效果和实现
    iOS开发动画(Animation)总结
    iOS开发之传感器
  • 原文地址:https://www.cnblogs.com/see7di/p/2239868.html
Copyright © 2011-2022 走看看