• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP校验码生成–备忘

php 搞代码 4年前 (2022-01-22) 28次浏览 已收录 0个评论
<?php session_start();//保存生成值,以与用户输入比较//-------------------------------------------------------------------------$img_w       = 80;// 设置图片宽$img_h       = 20;// 设置图片高$pixel_num   = 200;//点越多干扰越大$is_set_line = true;// 启用干扰线$pixel_mode  = 2;// 干扰点模式,1,同色;2,杂色//-------------------------------------------------------------------------// 随机数产生器function make_seed(){    list($usec, $sec) = explode(' ', microtime());    return (float) $sec + ((float) $usec * 100000);}mt_srand(make_seed());//4.2.0以下版本适用$authnum = mt_rand(100, 99999);// 加入session$_SESSION['verifycode']=$authnum;//echo $authnum;//生成验证码图片Header("Content-type: image/PNG");$im = imagecreatetruecolor($img_w, $img_h);$bg_color = ImageColorAllocate($im, mt_rand(250,255),mt_rand(250,255),mt_rand(250,255));// 绘制背景imagefill($im,0,0,$bg_color);$total_width = 0;$word_info = array();// 循环,获取文字信息$word_length = strlen($authnum);for($ii=0; $ii<$word_length; $ii++){    $word_space = mt_rand(1,5);    $font = rand(3,5);    mt_rand(1,9)%2 == 0?$top = 1:$top = 3;    $word_info[$ii]['char']   = substr($authnum,$ii,1);    $word_info[$ii]['font']   = $font;    $word_info[$ii]['offset'] = $top;    if($ii == 0)    {        $word_info[$ii]['width'] = 0;    }    $word_info[$ii]['width']  = imageFontWidth($font)+$word_space;    $word_info[$ii]['height'] = imageFontHeight($font);    $word_info[$ii]['color']  = imageColorAllocate($im, mt_rand(0,50),mt_rand(0,150),mt_rand(0,200));    // 文字总宽度    $total_width += $word_info[$ii]['width'];    // 取第一个字体的高度    if($ii == 0)    {        $total_height = imagefontHeight($font);    }}// 计算偏移$offset_x = floor(($img_w - $total_width)/2);$offset_y = floor(($img_h - $total_height)/2);// 填充验证码$wid = 0;$i = 0;foreach($word_info as $key=>$val){    if($i>0)    {        $wid += $val['width'];    }    imagestring($im, $val['font'], $offset_x + $wid, $val['offset'] + $offset_y, $val['char'], $val['color']);    $i++;}switch($pixel_mode){    case 1:        $pixel_color  = ImageColorAllocate($im,                                        mt_rand(50,255),                                        mt_rand(50,255),                                        mt_rand(50,255));        // 干扰象素        for($i=0;$i<$pixel_num;$i++)        {            imagesetpixel($im, mt_rand()%$img_w , mt_rand()%$img_h , $pixel_color);        }        break;    case '2':        // 干扰象素for ($i=0;$i<=128;$i++){$pixel_color = imagecolorallocate ($im, rand(0,255), rand(0,255), rand(0,255));imagesetpixel($im,mt_rand(2,128),mt_rand(2,38),$pixel_color);}        break;    <mark>(本文来)源gaodaimacom搞#^代%!码&网(</mark><pre>搞gaodaima代码

default: $pixel_color = ImageColorAllocate($im, mt_rand(50,255), mt_rand(50,255), mt_rand(50,255)); // 干扰象素 for($i=0;$i<$pixel_num;$i++) { imagesetpixel($im, mt_rand()%$img_w , mt_rand()%$img_h , $pixel_color); } break;}ImagePNG($im);?>


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP校验码生成–备忘
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址