源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

探讨如何在php168_cms中提取验证码

  • 时间:2021-09-01 00:05 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:探讨如何在php168_cms中提取验证码
[u]复制代码[/u] 代码如下:
<?php function yzImg($nmsg){  if (function_exists('imagecreatetruecolor')){   $imstr[0]["s"]=$nmsg[0];   $imstr[1]["s"]=$nmsg[1];   $imstr[2]["s"]=$nmsg[2];   $imstr[3]["s"]=$nmsg[3];   //文件头...   header("Content-type: image/png");   //创建真彩色白纸   $im = @imagecreatetruecolor(50, 20) or die("建立图像失败");   //获取背景颜色   $background_color = imagecolorallocate($im, 255, 255, 255);   //填充背景颜色(这个东西类似油桶)   imagefill($im,0,0,$background_color);   //获取边框颜色   $border_color = imagecolorallocate($im,200,200,200);   //画矩形,边框颜色200,200,200   imagerectangle($im,0,0,49,19,$border_color);   //逐行炫耀背景,全屏用1或0   for($i=2;$i<28;$i++){   //获取随机淡色   $line_color = imagecolorallocate($im,rand(180,255),rand(180,255),rand(180,255));   //画线   imageline($im,2,$i,47,$i,$line_color);   }   //设置字体大小   $font_size=12;   //设置印上去的文字   $Str[0] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";   $Str[1] = "abcdefghijklmnopqrstuvwxyz";   $Str[2] = "01234567891234567890123456";   //获取第1个随机文字   //$imstr[0]["s"] = $Str[rand(0,2)][rand(0,25)];   $imstr[0]["x"] = rand(2,5);   $imstr[0]["y"] = rand(1,4);   //获取第2个随机文字   //$imstr[1]["s"] = $Str[rand(0,2)][rand(0,25)];   $imstr[1]["x"] = $imstr[0]["x"]+$font_size-1+rand(0,1);   $imstr[1]["y"] = rand(1,3);   //获取第3个随机文字   //$imstr[2]["s"] = $Str[rand(0,2)][rand(0,25)];   $imstr[2]["x"] = $imstr[1]["x"]+$font_size-1+rand(0,1);   $imstr[2]["y"] = rand(1,4);   //获取第4个随机文字   //$imstr[3]["s"] = $Str[rand(0,2)][rand(0,25)];   $imstr[3]["x"] = $imstr[2]["x"]+$font_size-1+rand(0,1);   $imstr[3]["y"] = rand(1,3);   //写入随机字串   for($i=0;$i<4;$i++){    //获取随机较深颜色    $text_color = imagecolorallocate($im,rand(80,180),rand(80,180),rand(80,180));    //画文字    imagechar($im,$font_size,$imstr[$i]["x"],$imstr[$i]["y"],$imstr[$i]["s"],$text_color);   }   //显示图片   imagepng($im);   //销毁图片   imagedestroy($im);   exit;  } else {   header("Pragma:no-cache");   header("Cache-control:no-cache");   header("ContentType: Image/BMP");   $Color[0] = chr(0).chr(0).chr(0);   $Color[1] = chr(255).chr(255).chr(255);   $_Num[0]  = "1110000111110111101111011110111101001011110100101111010010111101001011110111101111011110111110000111";   $_Num[1]  = "1111011111110001111111110111111111011111111101111111110111111111011111111101111111110111111100000111";   $_Num[2]  = "1110000111110111101111011110111111111011111111011111111011111111011111111011111111011110111100000011";   $_Num[3]  = "1110000111110111101111011110111111110111111100111111111101111111111011110111101111011110111110000111";   $_Num[4]  = "1111101111111110111111110011111110101111110110111111011011111100000011111110111111111011111111000011";   $_Num[5]  = "1100000011110111111111011111111101000111110011101111111110111111111011110111101111011110111110000111";   $_Num[6]  = "1111000111111011101111011111111101111111110100011111001110111101111011110111101111011110111110000111";   $_Num[7]  = "1100000011110111011111011101111111101111111110111111110111111111011111111101111111110111111111011111";   $_Num[8]  = "1110000111110111101111011110111101111011111000011111101101111101111011110111101111011110111110000111";   $_Num[9]  = "1110001111110111011111011110111101111011110111001111100010111111111011111111101111011101111110001111";   echo chr(66).chr(77).chr(230).chr(4).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(54).chr(0).chr(0).chr(0).chr(40).chr(0).chr(0).chr(0).chr(40).chr(0).chr(0).chr(0).chr(10).chr(0).chr(0).chr(0).chr(1).chr(0);   echo chr(24).chr(0).chr(0).chr(0).chr(0).chr(0).chr(176).chr(4).chr(0).chr(0).chr(18).chr(11).chr(0).chr(0).chr(18).chr(11).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0);   for ($i=9;$i>=0;$i--){     for ($j=0;$j<=3;$j++){       for ($k=1;$k<=10;$k++){         echo $Color[substr($_Num[$nmsg[$j]], $i * 10 + $k, 1)];       }     }   }   exit;  } } $string_yzimg=yzImgNumRand(4); yzImg($string_yzimg); function yzImgNumRand($lenth){  mt_srand((double)microtime() * 1000000);  for($i=0;$i<$lenth;$i++){   $randval.= mt_rand(1,9);  }  return $randval; } /*==隐逸鸟==*/ ?>
这个生成的验证码只是单纯的数字,背景填充很简单了只是26根直线填充的。前边看到他是想要4为随机字母加数字的序列,可是后来生成序列的时候却仅仅用了数字,字母却并没有用。下面重新修改为4位字母加数字的序列:
[u]复制代码[/u] 代码如下:
function yzImgNumRand($lenth){  mt_srand((double)microtime() * 1000000); $Str[0] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";  $Str[1] = "abcdefghijklmnopqrstuvwxyz";  $Str[2] = "01234567891234567890123456"; for($i=0;$i<$lenth;$i++){   $randval.= $Str[rand(0,2)][rand(0,25)]; }  return $randval; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部