phpgif 会动 验证码 php gif ?片??? ??
纯PHP手工打造的 会动的多帧GIF图片验证码. 好物.....
支持一下 顺便接分
您的验证码文字都出现在第一帧,因此只是好玩而已
望改进!
看一眼拿点分
您的验证码文字都出现在第一帧,因此只是好玩而已
望改进!
?,?太?懂,希望斑竹老大??指?一下.
您的验证码文字都出现在第一帧,因此只是好玩而已
望改进!
?,?太?懂,希望斑竹老大??指?一下.
意思是不是验证码出现在了第一帧,因此破解验证码只要拿到第一帧即可,所以改进,不让他在第一帧出现。
您的验证码文字都出现在第一帧,因此只是好玩而已
望改进!
?,?太?懂,希望斑竹老大??指?一下.
意思是不是验证码出现在了第一帧,因此破解验证码只要拿到第一帧即可,所以改进,不让他在第一帧出现。
ok,?上改之
修改完毕,现在第一帧为干扰码,请众位指点:
<?PHP/** ?明: Gif????建? 作者: 7di.net QQ群:223494678 调用: <img src="class_code.php?code=code" onclick="this.src=this.src+'&'+Math.round(Math.random(0)*1000)" style="max-width:90%" alt="好久没来了,分享点东西顺便散分" > 验证: IF(!isSet($_SESSION['code']) Or StrToLower($_SESSION['code'])!=StrToLower($cod)){ throw New Exception('Error:'.__LINE__.',?????!');Die(); }unSet($cod,$_SESSION['code']);/**///ini_set('display_errors',True);//Error_reporting(E_ALL);$code=(isSet($_REQUEST['code'])) ? $_REQUEST['code'] : '';IF($code=='code'){ OB_start();OB_clean(); //设置SessionID IF(!isSet($_SESSION)){Session_start();} //GIF类 Class GIF{ Private Static $Txt=''; //GIF mess Private Static $Img='GIF89a'; //GIF header 6 bytes Private Static $Debug=False; //Is open Debug? Private Static $BUF=Array(); Private Static $LOP= 0; Private Static $DIS= 2; Private Static $COL=-1; Private Static $IMG=-1; /** 生成GIF图片验证 @param $W 宽度 @param $H 高度 @param $B 背景色 /**/ Public Static Function init($W=75,$H=25,$B=''){ $chars='bcdefhkmnrstuvwxyABCDEFGHKMNPRSTUVWXY34568'; For($i=0;$i<3;$i++){ self::$Txt .= SubStr($chars,mt_rand(0,strlen($chars)-1),1); }unSet($chars); $_SESSION['code']=StrToLower(self::$Txt); // 记录session,全部小? IF($B=='' Or StriStr($B,',')==False Or Substr_Count($B,',')!=2){$B='255,255,255';} $B=Explode(',',$B); //生成一个多帧的GIF动画 For($i=0;$i<7;$i++){ $Im=ImageCreate($W,$H); //背景 $bg=ImageColorAllocate($Im,$B[0],$B[1],$B[2]); ImageColorTransparent($Im,$bg); unSet($bg); IF($i==0) {//第一??干?? $txt=ImageColorAllocate($Im,35,35,35); ImageTTFtext($Im,15,Rand(-15,25),5,($H-3),$txt,'class_code.ttf',self::$Txt[1]); ImageTTFtext($Im,15,Rand(-10,20),21,($H-4),$txt,'class_code.ttf',self::$Txt[1]); ImageTTFtext($Im,15,Rand(-25,15),38,($H-4),$txt,'class_code.ttf',self::$Txt[1]); unSet($txt); }Else{//??? $txt=ImageColorAllocate($Im,35,35,35); //ImageString($Im,7,Rand(0,($W/2)),Rand(-3,5),self::$Txt,$txt); ImageTTFtext($Im,15,Rand(-15,25),5,($H-3),$txt,'class_code.ttf',self::$Txt[0]); ImageTTFtext($Im,15,Rand(-10,20),21,($H-4),$txt,'class_code.ttf',self::$Txt[1]); ImageTTFtext($Im,15,Rand(-25,15),38,($H-4),$txt,'class_code.ttf',self::$Txt[2]); unSet($txt); } ImageGif($Im);Imagedestroy($Im); $Imdata[]=ob_get_contents(); OB_clean(); }unSet($W,$H,$B); IF(self::$Debug){Echo '<pre class="brush:php;toolbar:false;">',Var_Dump($Imdata),'对我这种新手来说,这个是好东西啊!果断收藏。
我果断收藏它
我果断收藏它 嘿嘿
不错,收藏了
谢啦,学习了
接分
不错不错, 改进下更好
很好很强大!!
收藏了 以后多交流
lz加油!
不解释!接分! 支持楼主
不错啊。。。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号