如何更改CodeIgniter Captcha生成的图像的名称?

时间:2013-09-10 17:11:52

标签: codeigniter captcha

我正在使用CodeIgniter Captcha Helper为我的网站生成验证码图像。它工作得非常好。但唯一的问题是它为验证码图像生成一个随机名称。如何更改CodeIgniter Captcha Helper生成的图像名称?我使用以下代码生成验证码。

$this->load->helper('captcha');
$keyword = $this->generate_random_keyword();
$vals = array(
    'word'  => $keyword,
    'img_path'     => './captcha/',
    'img_url'     => base_url() . '/captcha/',
    'img_width'     => '150',
    'img_height' => '35',
    'border' => 0, 
    'font_path'  => './fonts/texb.ttf',
    'expiration' => 3600
);
$captcha = create_captcha($vals);

1 个答案:

答案 0 :(得分:2)

CodeIgniter/system/helpers/captcha_helper.php第231行

$img_name = $now.'.jpg';

您可以直接修改它(可能不是一个好主意,因为更新可能会覆盖)。或者您可以通过复制原始文件,修改并将其放入application/helpers来创建自己的帮助程序。

如果你想通过参数自定义名称,那么应该这样做:

// line 42
function create_captcha($data = '', $img_path = '', $img_url = '', $font_path = '', $captcha_filename = '')

然后

// line 231
if ($captcha_filename != '')
{
    $img_name = $captcha_filename.'.jpg';
}
else
{
    $img_name = $now.'.jpg';
}

但请注意,如果设置$captcha_filename,此示例可能会覆盖同一目录中的现有验证码。

所以,将captcha_helper.php复制到application/helpers,在第42行和第231行(或只是231)进行更改,保存,你应该很好。