我使用来自CodeIgniter的验证码助手为注册用户生成验证码图像。我有一些这样的价值:
$vals = array(
'word' => $rand_word,
'img_path' => 'resources/captcha/',
'img_url' => 'http://localhost/fitinline/resources/captcha/',
'font_path' => './path/to/fonts/texb.ttf',
'img_width' => 150,
'img_height' => 40,
'expiration' => 7200
);当我使用create_captcha($vals)函数生成验证码时,验证码图像会自动保存到'img_path‘。有过期索引,我将其默认值设置为2小时(7200)。但两个多小时后,我检查了'img_path‘中的图像,图像仍然保存在其中。是否缺少任何配置来启用自动删除那些验证码镜像或其他。?
谢谢
发布于 2012-05-01 21:06:08
基于CI文档:
$vals = array(
'word' => 'Random word',
'img_path' => './captcha/',
'img_url' => 'http://example.com/captcha/',
'font_path' => './path/to/fonts/texb.ttf',
'img_width' => '150',
'img_height' => 30,
'expiration' => 7200
);“过期”(以秒为单位)表示镜像在删除之前将在验证码文件夹中保留多长时间。默认值为两小时。
发布于 2011-12-27 17:29:42
如果没有cron,镜像就不可能在过期时间后自行删除。但是,当有人触发captcha helper时,他会检查是否有任何不应该存在的图像,并将其删除。
假设你已经注册了验证码。我正在创建新帐户。新验证码的过期时间也是7200。你打开你的文件夹,里面有超过7200张验证码的图片,图片仍然在那里。第二天,其他人创建了新帐户,新的验证码也被创建了。但在那一刻,助手看到有不应该在那里的图像(从昨天),他删除了它。
所以你不应该担心,在captcha文件夹中有图像。一旦创建了一些新的验证码并且它们的时间到期,就应该删除它们。您可以签入captcha_helper文件,其中包含以下内容的部分代码:
// -----------------------------------
// Remove old images
// -----------------------------------如果在helper被触发之前无法waint,您应该创建删除图像脚本并将其添加到cron。
发布于 2011-12-27 17:19:54
验证码是否正常工作?(检查目录权限了吗?)
我不确定这一点,但请尝试将CI指南中提到的create_captcha()结果保存到数据库中。
CREATE TABLE captcha (
captcha_id bigint(13) unsigned NOT NULL auto_increment,
captcha_time int(10) unsigned NOT NULL,
ip_address varchar(16) default '0' NOT NULL,
word varchar(20) NOT NULL,
PRIMARY KEY `captcha_id` (`captcha_id`),
KEY `word` (`word`)
);https://stackoverflow.com/questions/8641963
复制相似问题