2011-12-27 3 views
0

Я использую captcha helper от CodeIgniter для создания Captcha изображения для пользователя регистрации. Я некоторое значение, как это:Auto delete captcha image CI

$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 
    ); 

капча изображение автоматически сохраняется в «IMG_PATH», когда я произвожу капчи с помощью create_captcha($vals) функции. Существует индекс истечения, который я установил по умолчанию на 2 часа (7200). Но через более чем два часа я проверяю изображение в «img_path», изображение все равно сохраняется на нем. Есть ли отсутствующая конфигурация, позволяющая автоматически удалить это изображение captcha или что?
Thanks

ответ

1

основе 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 
    ); 

«действия» (в секундах) означает, как долго изображение будет оставаться в папке капчи, прежде чем он будет удален. Значение по умолчанию - два часа.

1

- captcha работает нормально? (вы проверяли разрешения на доступ к каталогам?)

Я не уверен в этом, но попробуйте сохранить результаты create_captcha() базы данных, как упомянуто в CI Guide.

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`) 
); 
4

без cron, изображения не удаляются после истечения срока их действия. Но когда кто-то вызовет помощника captcha, он проверяет, нет ли изображения, которого не должно быть, и он удалит их.

Скажите, что у вас есть captcha в регистрации. Я создаю новую учетную запись. Новый captcha также создается с 7200 временем истечения срока действия. Вы открываете свою папку с изображениями captcha после более чем 7200, и фотографии все еще там. На следующий день кто-то другой создает новую учетную запись, создается новый captcha. Но в тот момент помощник видит, что есть образ, которого не должно быть (со вчерашнего дня), и он удаляет его.

Так что вам не следует беспокоиться, что есть изображения в папке captcha. Они должны быть удалены, как только будет создан новый captcha, и истечет время их действия. Вы можете проверить в файле captcha_helper есть часть коды для:

// ----------------------------------- 
    // Remove old images 
    // ----------------------------------- 

Если вы не можете waint, пока помощник не спуски, вы должны создать скрипт для удаления изображения и добавить его в хронах.

0
/*Add script to delete all captcha file*/ 

$files = glob('./captcha/*'); // get all file names 
foreach($files as $file) 
{ 
    // iterate files 
    if(is_file($file)) 
    unlink($file); // delete file 
}