我正在使用验证码,我想使用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
答案 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,因此无法创建验证码。
解决这个问题的方法就是设置存储验证码图像的正确路径。
希望这可以帮到你!