Показать сообщение отдельно
Soniks вне форума      Старый #4  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
07.02.2010, 11:51

Ничего сложного нет:
  1. Скачиваем архив kaptcha сайта разработчика, если еще не скачивали.
  2. Раззиповываем папку kaptcha в корень сайта, убеждаемся ч то в этой папке есть файл index.php
  3. При желании настраиваем kaptchу, открыв файл kcaptcha_config.php, который находится в этой же папки.
  4. Открывеме index.php модуля You_Account.
  5. Находим функцию new_user(), а в ней следующее условие:
    PHP код:
     if (extension_loaded("gd") AND ($gfx_chk == OR $gfx_chk == OR $gfx_chk == OR $gfx_chk == 7)) {
       echo 
    "<tr><td>"._SECURITYCODE.":</td><td><img src='?gfx=gfx&amp;random_num=$random_num' border='1' alt='"._SECURITYCODE."' title='"._SECURITYCODE."'></td></tr>\n"
       
    ."<tr><td>"._TYPESECCODE.":</td><td><input type=\"text\" NAME=\"gfx_check\" SIZE=\"7\" MAXLENGTH=\"6\"></td></tr>\n"
       
    ."<input type=\"hidden\" name=\"random_num\" value=\"$random_num\">\n";
      } 

    Взамен этого вставляем следующее:
    PHP код:
     session_start();
      echo 
    "<tr><td>"._SECURITYCODE.":</td><td><img src='/kaptcha/index.php?".session_name()."=".session_id()."' border='1' alt='"._SECURITYCODE."' title='"._SECURITYCODE."'></td></tr>\n"
       
    ."<tr><td>"._TYPESECCODE.":</td><td><input type=\"text\" NAME=\"keystring\" SIZE=\"7\"></td></tr>\n"
  6. Далее в том же файле находим функцию confirmNewUser(), а вней такие строки:
    PHP код:
     ."<input type=\"hidden\" name=\"random_num\" value=\"$random_num\">"
      
    ."<input type=\"hidden\" name=\"gfx_check\" value=\"$gfx_check\">" 

    Меняем их на:
    PHP код:
     ."<input type=\"hidden\" name=\"keystring\" value=\"".$_POST['keystring']."\">" 
  7. Находим и удаляем следующие строки:
    PHP код:
     if (extension_loaded("gd") AND $code != $gfx_check AND ($gfx_chk == OR $gfx_chk == OR $gfx_chk == OR $gfx_chk == 7)) {
       
    title(""._NEWUSERERROR."");
       
    OpenTable();
       echo 
    "<center><b>"._SECCODEINCOR."</b><br><br>"
       
    .""._GOBACK."</center>";
       
    CloseTable();
       include(
    "footer.php");
       die();
      } 
  8. Находим функцию finishNewUser(), а вней удаляем следующие строки:
    PHP код:
     if (extension_loaded("gd") AND $code != $gfx_check AND ($gfx_chk == OR $gfx_chk == OR $gfx_chk == OR $gfx_chk == 7)) {
       
    Header("Location: modules.php?name=$module_name");
       die();
      } 
  9. И последнее, находим функцию userCheck(), а в ней следующую строку:
    PHP код:
     global $stop$user_prefix$db

    Поле нее добавляем следующее:
    PHP код:
     session_start();
     if(!isset(
    $_SESSION['captcha_keystring']) ||  !$_POST['keystring'] || $_SESSION['captcha_keystring'] !=  $_POST['keystring']) $stop "<center>"._SECCODEINCOR."</center><br>"
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".