codeigniter:无法创建验证码

时间:2014-03-26 03:49:18

标签: codeigniter captcha

我正在使用验证码,我想使用cpatcha助手创建验证码!我阅读了用户指南并编写了一段代码,但它无法创建验证码,此处也没有错误显示在页面上,所以我无法找到错误的地方,我的代码如下:

public function captcha(){
        $this->load->helper('captcha');

        $vals=array(
            'word'=>'0123456789',
            'img_path'=>base_url('asserts/cpatcha').'/',
            'img_url'=>base_url('asserts/cpatcha').'/',
            'img_width'=>150,
            'img_height'=>30,
            'expiration'=>7200
            );

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

当我打印两个变量时,页面上显示的结果如下:

array (size=6)
  'word' => string '0123456789' (length=10)
  'img_path' => string 'http://wrecruit.tudouya.com/asserts/cpatcha/' (length=44)
  'img_url' => string 'http://wrecruit.tudouya.com/asserts/cpatcha/' (length=44)
  'img_width' => int 150
  'img_height' => int 30
  'expiration' => int 7200

null

2 个答案:

答案 0 :(得分:0)

你可以改变 $cap=create_captcha();$cap = create_captcha($vals); 并且也改变了 var_dump($cap['image']);echo $cap['image'];

答案 1 :(得分:0)

我自己解决这个问题,我在这里发布我的解决方案,希望这可以帮助别人! 首先,由于配置不正确,验证码无法正确显示的原因是:'img_path'=>base_url('asserts/cpatcha').'/',
我在ci中阅读了captcha的源代码,我在第66-69行找到了它,它将检查img_path是否为dir,如下所示:

if ( ! @is_dir($img_path))
{
    return FALSE;
}

在我的配置中,我将img_path设置为“base_url('asserts / cpatcha')。'/'”,这不是dir,因此无法创建验证码。
解决这个问题的方法就是设置存储验证码图像的正确路径。 希望这可以帮到你!