在线客服,智能在线客服,在线客服系统,客服机器人,智能客服,智能机器人客服,电商客服系统,智慧客服,免费电话,微信在线客服,网站在线客服软件,网络营销电话,手机在线客服,微客服,快商通

咨询热线:0592-5373098 

codeigniter captcha验证码插件改变图片大小后文本显示不正常现象

分类:快商学院 时间:2012-10-10 作者:


QQ空间 新浪微博 腾讯微博 更多

 

codeigniter captcha验证码默认是8个字符,但是一般4个的比较多,然后就想也改成4个的,这个完全是没问题的,所以把图片宽也设成可以容纳4个的就够了,但是问题是,图片缩小了,但是文本随机显示的位置是不会变的,所以就造成了文本会显示在图片外,就是看不到,要通过不断刷新到显示正常才可以,这也挺麻烦的,无非是改变下随机的位置,所以网上找了下,发现了解决方法

 // -----------------------------------
 //  Write the text
 // -----------------------------------
 /*
 $use_font = ($font_path != '' AND file_exists($font_path) AND function_exists('imagettftext')) ? TRUE : FALSE;

 if ($use_font == FALSE)
 {
  $font_size = 5;
  $x = rand(0, $img_width/($length/3));
  $y = 0;
 }
 else
 {
  $font_size = 16;
  $x = rand(0, $img_width/($length/1.5));
  $y = $font_size+2;
 }

 for ($i = 0; $i < strlen($word); $i++)
 {
  if ($use_font == FALSE)
  {
   $y = rand(0 , $img_height/2);
   imagestring($im, $font_size, $x, $y, substr($word, $i, 1), $text_color);
   $x += ($font_size*2);
  }
  else
  {  
   $y = rand($img_height/2, $img_height-3);
   imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_path, substr($word, $i, 1));
   $x += $font_size;
  }
 }
 */
    $use_font = ($font_path != '' AND file_exists($font_path) AND function_exists('imagettftext')) ? TRUE : FALSE;

    if ($use_font == FALSE)
    {
        $font_size = 5;
        $x = rand(10, $img_width/($length)-10);
        $y = 0;
    }
    else
    {
        $font_size    = 11;
        $x = rand(10, $img_width/($length)-10);
        $y = $font_size+2;
    }

    for ($i = 0; $i < strlen($word); $i++)
    {
        if ($use_font == FALSE)
        {
            $y = rand(2 , ($img_height-$font_size)/3);
            imagestring($im, $font_size, $x, $y, substr($word, $i, 1), $text_color);
            $x += ($font_size*2.5);
        }
        else
        {       
            $y = $img_height/2 +5;
            imagettftext($im, $font_size, rand(-$angle,$angle), $x, $y, $text_color, $font_path, substr($word, $i, 1));
            $x += $font_size+5;
        }
    }

把这个改下就可以了。

返回列表>>

上一篇:asp操作XML详解-DOM+XML

下一篇:codeigniter发送邮件


相关新闻

快商致客户的一封感谢信

快商推出员工高效日,提倡“高效工作 开心生活”

快商总部乔迁之喜

快商营销区的足球比赛更疯狂

2011年快商节日祝福暨“五•一”节放假通知

客服一对一服务
30万成功案例
CCTV央视特别报道
国家高新技术企业
全国统一咨询热线:0592-5373098