Sebastyan
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Родина оригинального скрипта: _http://www.netpatch.ru/npcaptcha.html Большое спасибо автору. Сразу замечу: механизма обновления картинки не предусмотрено. Возникла необходимость добавить captcha на этапе регистрации, поэтому пришлось найти скрипт и вкрутить в нужное место. В архиве необходимый комплект: captcha_kit.rar (2,6Mb) 1. Каталог cpdat (содержит images и tmp), captcha.cgi и NPCaptcha.pm кладём в каталог со скриптами IB2. (images_for_captcha_6symb содержит картинки - шестизнаки. Этот каталог идёт в дополнение и на сервере не нужен. Если четырёхзначных картинок покажется мало, просто поместите в images шестизначные картинки.) 2. Открываем captcha.cgi и настраеваем пути на сервере. Эти же пути позже добавите в register.cgi 3. Далее все добавления в register.cgi: 3.1 Перед кнопкой "Отправить", т.е. перед блоком: Код: <input type=submit value=$ibtxt{'0039'} name=submit><input type=hidden name=action value=addmember></td> </form></tr></table></td></tr></table> | добавляем запрос captcha: Код: <b>Введите код подтверждения:</b></font> <input name="captcha" type="text" size="8" maxlength="10"> <img src='captcha.cgi' alt= 'captcha'><br> | 3.2 После Код: ### Throw an error if they have more than three sig lines. @testsig = split(/\[br\]/,$signature); $siglines = @testsig; if (($siglines > "2") && (@testsig[3] ne "")) { print header('text/html; charset=windows-1251'); &error("$ibtxt{'1858'}&$ibtxt{'1857'}"); } ### make sure its a valid form | добавить блок (не забудьте исправить пути на те же, что и в captcha.cgi): Код: ####################################################### Проверка captcha ####################################################### # Путь к папке с набором изображений my $cap_images = "/domains/mydomain.ru/site/cgi-bin/ikonboard/cpdat/images"; # Путь к tmp папке my $cap_tmp = "/domains/mydomain.ru/site/cgi-bin/ikonboard/cpdat/tmp"; # Путь к библиотеке NPCaptcha.pm my $cap_libNPCap = "/domains/mydomain.ru/site/cgi-bin/ikonboard"; ####################################################### use warnings; use CGI qw/:standard/; use lib qw($cap_libNPCap); use NPCaptcha; my $captchaValue = param('captcha'); $captchaValue =~ tr/a-z/A-Z/; # переведём введённый пользователем текст captcha к верхнему регистру if(defined $captchaValue) { $ENV{HTTP_COOKIE} =~/captcha_rcpt=([\d\.]+)/; # Получаем значение cookie my $obCaptcha = NPCaptcha->new( extensions => ['gif', 'jpg'], remoteAddr => $ENV{REMOTE_ADDR}, cookieValue => $1, captchaValue => $captchaValue, tmpdir => $cap_tmp ); print '<hr>'; if(!$obCaptcha->check()) # 1 - успешно; 0 - ошибка { print header('text/html; charset=windows-1251'); &error("&Неправильный код подтверждения"); } } ####################################################### Проверка captcha завершена | Всё, captcha добавлена. | Всего записей: 34 | Зарегистр. 06-11-2003 | Отправлено: 12:19 07-04-2010 | Исправлено: Sebastyan, 12:24 07-04-2010 |
|