Codegnither验证码图像未显示

时间:2014-02-09 10:37:57

标签: php codeigniter security captcha

我真的在网上冲浪,甚至类似的问题也在这个论坛上发布,但我发现其中大部分还没有回答。

无论如何我还想在这里发布我的问题,如果有人能尽快帮助我会非常感激。

我在localhost中这样做,这是我的控制器,

   public function register(){

            $this->load->helper('captcha');

            $captcha = array(
                'word' => 'Random 123',
                'imag_path' => './captcha/',
                'img_url' => base_url() . 'captcha/',
                'font_path' => './fonts/arial.ttf',
                'img_width' => '300',
                'img_height' => '50',
                'expiration' => '3600',
            );
            print_r($captcha);
            $img = create_captcha($captcha);
            $data['image'] = $img['image'];

            if(!$_POST){
            $this->load->view('public/register', $data);
            return true;
        }
    }

我的观点有以下脚本,

<?php
    echo $image;
?>

问题:验证码图像未显示

仅供参考:在我的研究中,我发现许多人首先考虑以下几点。

1)检查“captcha”文件夹是777模式

2)检查GD库是否已加载

我确实检查了以上几点,但我不是100%肯定,因为我看不到文件夹权限在本地设置为777(我使用的是Windows 7 32位)。右键单击并检查“captcha”文件夹属性时,它设置为

属性       只读(已选中)       隐藏(未选中)

这是对的吗?若然后你知道为什么我的Captcha图像不起作用吗?

如果您需要更多详细信息,请与我们联系?

2 个答案:

答案 0 :(得分:0)

尝试使用此代码

<?php 

    $pool = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    $captcha = substr( str_shuffle( $pool ), 0, 5 );  


   $vals = array(
                'word' => $captcha,
    'img_path'   => 'front_images/captcha/',
    'img_url'    => base_url().'front_images/captcha/',
    'img_width'  => 120,
    'img_height' => 35,
    'font_path' => './system/fonts/texb.ttf',
    'expiration' => 3600 //1 houre
  );

  $cap = create_captcha($vals);
  echo $cap['image']

?>

答案 1 :(得分:0)

您在配置数组中输入错误,而不是imag_pathimg_path。 还要确保以下事项:

1. `img_path` or `img_url` is set properly.
2. If you have specified `img_path`, then make sure such a directory exists.
3. Make sure the `img_path` is `writable`.
4. Make sure `gd` library is installed.