ЧЕТЫРЕ КОМНАТЫ

FouRoom.RU: Креативное общение

  • Вы не вошли.

#1 2007-06-28 11:49:51

niikto
.
Зарегистрирован: 2007-04-15
Сообщений: 893
Профиль  Web-сайт

PunBB: капча (captcha)

Многих волнует вопрос: как ставить хорошую капчу для "гостя" - чтобы от спамеров избавиться!

Есть пара стандартных модов на http://punres.org, но они сильно простенькие, и их запросто "щелкнет" продвинутый спам-бот. Хорошая капча есть тут: http://captcha.ru/

там представлен код, а так же сравнение разных алгоритмов:

http://captcha.ru/captchas/
http://captcha.ru/kcaptcha/
http://captcha.ru/articles/algorithm/

вот прямая ссылка на исходник: http://captcha.ru/kcaptcha.zip

Благодаря уважаемому админу ресурса http://punbb.ru, товарищу hcs, мы можем приспособить эту самую эффективную капчу и для punbb-форума (что кстате и сделано в сборке от hcs).

Но политика http://fouroom.ru предполагает что в большинство вопросов человек должен иметь возможность написать сообщение и не проходя процедуру регистрации. Поэтом мне необходимо было добавить капчу не только в форму регистрации, но и в форму ответа для "гостя".

вот как я это сделал:

--- в post.php:

перед

Код:

define('PUN_ROOT', './');

вставить

Код:

session_start();

после:

Код:

    // Otherwise it should be in $_POST
    else
    {

добавить

Код:

// IMAGE VERIFICATION MOD BEGIN    
    // Image verifcation
    if ($pun_config['o_regs_verify_image'] == '1')
    {
        // Make sure what they submitted is not empty
        if (trim($_POST['req_image']) == '') {
            unset($_SESSION['captcha_keystring']);
            $errors[] = $lang_post['Text mismatch'];
//            message($lang_post['Text mismatch']);
        }

        if($_SESSION['captcha_keystring'] !=  strtolower(trim($_POST['req_image']))) {
            unset($_SESSION['captcha_keystring']);
            $errors[] = $lang_post['Text mismatch'];
//            message($lang_post['Text mismatch']);
        }
        if(!isset($_SESSION['captcha_keystring'])){
            unset($_SESSION['captcha_keystring']);
            $errors[] = $lang_post['Text mismatch2'];
//            message($lang_common['Bad request']);            
        }
        unset($_SESSION['captcha_keystring']);
    }

// IMAGE VERIFICATION MOD END

затем надо вставить саму капчу в форму ответа. у меня это после:

Код:

?>                        <label class="conl"><strong><?php echo $lang_post['Guest name'] ?></strong><br /><input type="text" name="req_username" value="<?php if (isset($_POST['req_username'])) echo pun_htmlspecialchars($username); ?>" size="25" maxlength="25" tabindex="<?php echo $cur_index++ ?>" /><br /></label>
                        <label class="conl"><?php echo $email_label ?><br /><input type="text" name="<?php echo $email_form_name ?>" value="<?php if (isset($_POST[$email_form_name])) echo pun_htmlspecialchars($email); ?>" size="50" maxlength="50" tabindex="<?php echo $cur_index++ ?>" /><br /></label>
                        <div class="clearer"></div>

добавить

Код:

<?php 
// IMAGE VERIFICATION MOD BEGIN    

if ($pun_config['o_regs_verify_image'] == '1'): ?>
            <div class="inform">
                    <div class="infldset">
                        <label id="gray"><img style="border: 1px solid #aaa;" src="<?php echo $pun_config['o_base_url']?>/include/captcha/captcha.php?<?php echo session_name()?>=<?php echo session_id()?>"> <strong><?php echo $lang_post['Image text'] ?></strong> <input type="text" name="req_image" size="16" maxlength="16" /></label>
                    </div>

            </div>
<?php endif; 

// IMAGE VERIFICATION MOD END
?>

ну и под финиш надо определиться с undefined-полями. Дело в том что в оригинальной версии punbb (http://punbb.org) есть имя только у поля "имя" гостя. поэтому если не заполнить другое поле (например е-майл) - браузер выдаст ошибку "незаполнено undefined-поле". Если правильно назвать поля- он будет говорить какое именно поле не заполнено. делаем это так:

гдето на уровне 400-й строки, это:

Код:

$required_fields['req_username'] = $lang_post['Guest name'];

меняем на это:

Код:

$required_fields = array('req_email' => $lang_common['E-mail'], 'req_subject' => $lang_common['Subject'], 'req_message' => $lang_common['Message'], 'req_username' => $lang_post['Guest name'], 'req_image' => $lang_post['Imgtxt']);

ну или если у Вас сборка rev.85 с http://punbb.ru, то строка которую надо заменить будет более полная:

Код:

$required_fields = array('req_email' => $lang_common['E-mail'], 'req_subject' => $lang_common['Subject'], 'req_message' => $lang_common['Message'], 'req_username' => $lang_post['Guest name']);

но всё же там не хватает имени поля, которое мы только что добавили!, поэтому в конец туда добавляем (перед скобкой):

Код:

, 'req_image' => $lang_post['Imgtxt']

или просто заменить строчку на эту:

Код:

    $required_fields = array('req_email' => $lang_common['E-mail'], 'req_subject' => $lang_common['Subject'], 'req_message' => $lang_common['Message'], 'req_username' => $lang_post['Guest name'], 'req_image' => $lang_post['Imgtxt']);

так. теперь у нас рабочий post.php, но надо ещё языковые константы добвить.

добавлять будем в папку /lang/... язык.../post.php
причём сколько языков, столько и добавляем.

я лично добавлял так:

в lang/russian/post.php:
(добавлять надо после запятой или в конец или между двумя любыми элементами массива)

Код:

//Image Verification stuff
//'Image verification'            =>    'Введите правильный текст с картинки',
'Imgtxt'            =>    'Текст с картинки',
'Image text'                =>    'Введите текст с картинки:', // 'Текст',
//'Image info'                =>    'Введите текст, который Вы видите на картинке. Это необходимо для защиты от спам-ботов, извините за неудобство.',
'Text mismatch'                =>    'Введённый Вами текст не совпадает с картинкой',
'Text mismatch2'                =>    'Попробуйте правильно ввести текст. Не обновиляйте страницу<br /> Но: если в Вашем браузере отключены картинки и вы открыли эту страницу, сперва включите картинки, затем обновите её.<span style="color: #aa0000"> При обновлении текст потеряется, поэтому скопируйте его в буфер обмена!</span>',

в lang/english/post.php:
(добавлять надо после запятой или в конец или между двумя любыми элементами массива)

Код:

//Image Verification stuff
//'Image verification'            =>    'Image Verification',
'Imgtxt'            =>    'Text from image',
'Image text'                =>    'Input text from image to text box', //'Image Text',
//'Image info'                =>    'Please copy the text in the image to the text box above',
'Text mismatch'                =>    'Please make sure the text and the image match',
'Text mismatch2'                =>    'Try again input the text from image. Don\'t reload page<br /> but: if your browser not show images, and you open this page, first turn on images-show, after reload this page.<span style="color: #aa0000"> If you reloaded page, text in message area will be lost, then copy it\'s to copy-buffer!</span>',

теперь всё это надо закачать на сервер в правильные места.


Сами файлы капчи в прикреплённом файле. у меня они лежат в папке:
include/captcha/

поэтому их туда и распаковывайте (только чтобы не получилось  include/captcha/captcha - смотрите)


Вложения

Неактивен(а)

 

#2 2007-06-28 11:56:57

niikto
.
Зарегистрирован: 2007-04-15
Сообщений: 893
Профиль  Web-сайт

Re: PunBB: капча (captcha)

А теперь для тех кто не хочет пользоваться основной сборкой http://punbb.ru:

полделайте все вышеописанные изменения, но плюс к тому - еще надо добавить код капчи в register.php и языковые константы для него.

итак, в register.php добавляем перед:

Код:

define('PUN_ROOT', './');

это:

Код:

session_start();

затем после:

Код:

    if ($db->num_rows($result))
        message('За последние 10 минут с вашего IP уже регистрировался новый пользователь. Для предотвращения флуд-регистрации, с одного и того же IP можно регистрировать пользователя не чаще чем раз в 10 минут. Простите за неудобство.');

(тут у вас другая строка, да ещё и по аглицки, если конечно вы не пользуетесь моеё сборкой. а иначе вам эта тема не актуальна- я там уже свё сделал)


добавляем:

Код:

// IMAGE VERIFICATION MOD BEGIN    
    // Image verifcation
    if ($pun_config['o_regs_verify_image'] == '1')
    {
        // Make sure what they submitted is not empty
        if (trim($_POST['req_image']) == '') {
            unset($_SESSION['captcha_keystring']);
            message($lang_register['Text mismatch']);
        }

// Каптча содержит только латиницу. Она работает. Золотое правило - 
// Если это работает, то не трогай это! :-)        
        if($_SESSION['captcha_keystring'] !=  strtolower(trim($_POST['req_image']))) {
            unset($_SESSION['captcha_keystring']);
            message($lang_register['Text mismatch']);
        }
        if(!isset($_SESSION['captcha_keystring'])){
            unset($_SESSION['captcha_keystring']);
            message($lang_common['Bad request']);            
        }
        unset($_SESSION['captcha_keystring']);
    }

// IMAGE VERIFICATION MOD END

потом после:

Код:

                        <p class="clearb"><?php echo $lang_register['Pass info'] ?></p>
                    </div>
                </fieldset>
            </div>
<?php endif; ?>            <div class="inform">

добавляем:

Код:

<?php 
// IMAGE VERIFICATION MOD BEGIN    

if ($pun_config['o_regs_verify_image'] == '1'): ?>
            <div class="inform">
                <fieldset>
                    <legend><?php echo $lang_register['Image verification'] ?></legend>
                    <div class="infldset">
                        <img id="capchaimg" src="<?php echo $pun_config['o_base_url']?>/include/captcha/captcha.php?<?php echo session_name()?>=<?php echo session_id()?>"><br />
                        <label class="conl"><strong><?php echo $lang_register['Image text'] ?></strong><br /><input type="text" name="req_image" size="16" maxlength="16" /><br /></label>
                        <p class="clearb"><?php echo $lang_register['Image info'] ?></p>
                    </div>
                </fieldset>
            </div>
<?php endif; 

// IMAGE VERIFICATION MOD END
?>

теперь идём в /lang/Russian/register.php
и там, по аналогии с прослым сообщением, добавляем:

Код:

//Image Verification stuff
'Image verification'            =>    'Введите правильный текст с картинки',
'Image text'                =>    'Текст',
'Image info'                =>    'Введите текст, который Вы видите на картинке. Это необходимо для защиты от регистрации спам-ботов, извините за неудобство.',
'Text mismatch'                =>    'Введённый Вами текст не совпадает с картинкой',

теперь идём в /lang/English/register.php
и там, по аналогии с прослым сообщением, добавляем:

Код:

//Image Verification stuff
'Image verification'            =>    'Input text from image',
'Image text'                =>    'Image Text',
'Image info'                =>    'Please copy the text in the image to the text box above',
'Text mismatch'                =>    'Please make sure the text and the image match',

учтите что и русский и английский переводы я немного подредактировал, по своему усмотрению, и заменил им тот, что в сборке http://punbb.ru

Неактивен(а)

 

#3 2007-07-03 23:38:24

W1R0X
Участник
Зарегистрирован: 2007-07-01
Сообщений: 2
Профиль

Re: PunBB: капча (captcha)

niikto писал(а):

в lang/english/post.php:
(добавлять надо после запятой или в конец или между двумя любыми элементами массива)

Код:

//Image Verification stuff
//'Image verification'            =>    'Image Verification',
'Imgtxt'            =>    'Text from image',
'Image text'                =>    'Input text from image to text box', //'Image Text',
//'Image info'                =>    'Please copy the text in the image to the text box above',
'Text mismatch'                =>    'Please make sure the text and the image match',
'Text mismatch2'                =>    'Try again input the text from image. Don't reload page<br /> but: if your browser not show images, and you open this page, first turn on images-show, after reload this page.<span style="color: #aa0000"> If you reloaded page, text in message area will be lost, then copy it's to copy-buffer!</span>',

Внесу небольшую поправочку. В этом коде надо экранировать кавычки: (замените это)

Код:

'Text mismatch2'                =>    'Try again input the text from image. Don't reload page<br /> but: if your browser not show images, and you open this page, first turn on images-show, after reload this page.<span style="color: #aa0000"> If you reloaded page, text in message area will be lost, then copy it's to copy-buffer!</span>',

На вот это:

Код:

'Text mismatch2'                =>    'Try again input the text from image. Don\'t reload page<br /> but: if your browser not show images, and you open this page, first turn on images-show, after reload this page.<span style="color: #aa0000"> If you reloaded page, text in message area will be lost, then copy it\'s to copy-buffer!</span>',

Еще возникла проблемка с установкой самой каптчи. Везде используется $pun_config['regs_verify_image']. Но про него в статье помоему ничего не сказано. Я добавил в админку и по аналогии в базу опцию regs_verify_image.

Кому интересно инструкция:
1) Добавляем в базу в таблицу config форума новую запись "o_regs_verify_image" равную "1".
2) Добавляем в admin_options.php
После :

Код:

if ($form['maintenance_message'] != '')
        $form['maintenance_message'] = pun_linebreaks($form['maintenance_message']);
    else
    {
        $form['maintenance_message'] = 'The forums are temporarily down for maintenance. Please try again in a few minutes.\n\n/Administrator';

        if ($form['maintenance'] == '1')
            $form['maintenance'] = '0';
    }

Этот код:

Код:

// IMAGE VERIFICATION MOD BEGIN 
    if ($form['regs_verify_image'] != '')
      $form['regs_verify_image'] = pun_linebreaks($form['regs_verify_image']);
    else
    {
        if ($form['regs_verify_image'] == '1')
            $form['regs_verify_image'] = '0';
    }
// IMAGE VERIFICATION MOD END

Далее после:

Код:

<th scope="row">Maintenance message</th>
                                    <td>
                                        <textarea name="form[maintenance_message]" rows="5" cols="55"><?php echo pun_htmlspecialchars($pun_config['o_maintenance_message']) ?></textarea>
                                        <span>The message that will be displayed to users when the board is in maintenance mode. If left blank a default message will be used. This text will not be parsed like regular posts and thus may contain HTML.</span>
                                    </td>
                                </tr>
                            </table>
                        </div>
                    </fieldset>
                </div>

Этот код:

Код:

<?// IMAGE VERIFICATION MOD BEGIN?>
                <div class="inform">
                    <fieldset>
                        <legend>Anti-Bot Protect</legend>
                        <div class="infldset">
                        <table class="aligntop" cellspacing="0">
                            <tr>
                                <th scope="row"><a name="Captcha">Captcha</a></th>
                                <td>
                                <input type="radio" name="form[regs_verify_image]" value="1"<?php if ($pun_config['o_regs_verify_image'] == '1') echo ' checked="checked"' ?> />&nbsp;<strong>Yes</strong>&nbsp;&nbsp;&nbsp;<input type="radio" name="form[regs_verify_image]" value="0"<?php if ($pun_config['o_regs_verify_image'] == '0') echo ' checked="checked"' ?> />&nbsp;<strong>No</strong>
                                        <span>When enabled, guests of your forum will see captcha before posting message.</span>
                                    </td>
                                </tr>
                            </table>
                        </div>
                    </fieldset>
                </div>
<?// IMAGE VERIFICATION MOD END?>

Вот после этих манипуляций в админке появится новый пункт касательно каптчи.

Отредактированно W1R0X (2007-07-04 00:15:03)

Неактивен(а)

 

#4 2007-07-04 06:00:53

niikto
.
Зарегистрирован: 2007-04-15
Сообщений: 893
Профиль  Web-сайт

Re: PunBB: капча (captcha)

Большое спасибо! Так и думал что забыл что-то. Ведь в сборке punbb.ru в админке уже есть такой пункт.

я щас со смартфона. За комп сяду, сюда добавлю код для админки

Неактивен(а)

 

#5 2007-07-05 08:55:07

niikto
.
Зарегистрирован: 2007-04-15
Сообщений: 893
Профиль  Web-сайт

Re: PunBB: капча (captcha)

английский пеервод поправил,
а теперь что надо сделать, чтобы в опциях появилась радиокнопка:


admin_options.php:

в разделе

Код:

                        <legend>Регистрация</legend>

ищем

Код:

                                <tr>
                                    <th scope="row">E-mail проверка регистраций</th>
                                    <td>
                                        <input type="radio" name="form[regs_verify]" value="1"<?php if ($pun_config['o_regs_verify'] == '1') echo ' checked="checked"' ?> />&nbsp;<strong>Да</strong>&nbsp;&nbsp;&nbsp;<input type="radio" name="form[regs_verify]" value="0"<?php if ($pun_config['o_regs_verify'] == '0') echo ' checked="checked"' ?> />&nbsp;<strong>Нет</strong>
                                        <span>Когда включено, пользователям посылается случайный пароль при регистрации. Они могут войти и изменить его в своем профиле на более удобный.  Кроме того пользователь вынужден проверять новый e-mail адрес введенный при регистрации. Это эффективный способ избежать аато-регистраций и проверить коректность e-mail адреса всех пользователей в их профилях.</span>
                                    </td>
                                </tr>

этот пункт по умолчанию (со старым языковым пакетом зовётся просто "ПРОВЕРКА РЕГИСТРАЦИЙ".

после этого вставляем:

Код:

                                <tr>
                                    <th scope="row">Проверка картинкой регистрации и гостей</th>
                                    <td>
                                        <input type="radio" name="form[regs_verify_image]" value="1"<?php if ($pun_config['o_regs_verify_image'] == '1') echo ' checked="checked"' ?> />&nbsp;<strong>Да</strong>&nbsp;&nbsp;&nbsp;<input type="radio" name="form[regs_verify_image]" value="0"<?php if ($pun_config['o_regs_verify_image'] == '0') echo 'checked="checked"' ?> />&nbsp;<strong>Нет</strong>
                                        <span>Когда включено, пользователи должны ввести текст с картинки для подтверждения регистрации и в форме ответа. Это лучший способ избавиться от авто-регистраций ботов и не заставлять каждого пользователя подтверждать подлииность через e-mail, экономя его время.</span>
                                    </td>
                                </tr>

ну и надо выполнить install.php для изменения структуры базы (ато конфиг будет храниться только в кеше - это ненадолго и неправильно.

итак скачиваем архив с файлом install_mod.php, помещаем  в папку с форумом (корневую), и запускаем


Вложения

Неактивен(а)

 

#6 2007-09-03 21:00:49

Bodik
Участник
Зарегистрирован: 2007-09-03
Сообщений: 1
Профиль

Re: PunBB: капча (captcha)

Помогите мне поставить капчу. У меня стандартная 1.2.15. Поставил все по вышеуказаному  описанию, только ставил для регистрации. В админке все работает, проблема одна: при регистрации всегда пишет "Введённый Вами текст не совпадает с картинкой". Где копать?

Неактивен(а)

 

#7 2007-09-08 08:08:37

niikto
.
Зарегистрирован: 2007-04-15
Сообщений: 893
Профиль  Web-сайт

Re: PunBB: капча (captcha)

на Ваш вопрос можете ответить только вы, я ведь не знаю что вы сделали не так. процедура описана максимально подробно, могу лишь посоветовать взять вариант ДО капчи и попробовать снова - более аккуратно.

Неактивен(а)

 

#8 2007-12-06 12:51:45

ital
Гость

Re: PunBB: капча (captcha)

Bodik писал(а):

Помогите мне поставить капчу. У меня стандартная 1.2.15. Поставил все по вышеуказаному  описанию, только ставил для регистрации. В админке все работает, проблема одна: при регистрации всегда пишет "Введённый Вами текст не совпадает с картинкой". Где копать?

У меня стоит последняя стандартная версия 1.2.16, я тоже всё сделал как описано выше, но сама картинка капчи не отображается. mad

 

#9 2007-12-06 16:14:12

ital
Гость

Re: PunBB: капча (captcha)

P.S. Адрес на картинку какой-то странный - ...../forum/include/captcha/captcha.php?PHPSESSID=4f73d8d30f0305e5576e15411cbe412a

 

#10 2007-12-06 19:36:40

niikto
.
Зарегистрирован: 2007-04-15
Сообщений: 893
Профиль  Web-сайт

Re: PunBB: капча (captcha)

чем он странный? тем что расширения присущего картинке нет? wink

Добавлено спустя     1 минуту   2 секунды:
А вы оба добавляли сами файлы капчи, или только вышеописанные изменения сделали?

Неактивен(а)

 

#11 2007-12-06 20:15:14

ital
Гость

Re: PunBB: капча (captcha)

niikto писал(а):

чем он странный? тем что расширения присущего картинке нет? wink

Добавлено спустя     1 минуту   2 секунды:
А вы оба добавляли сами файлы капчи, или только вышеописанные изменения сделали?

Я добавил один файл, адрес которого указан выше, но в этом файле абракадабры какие-то, нашёл по ссылкам ещё файлы в архиве и тоже загнал на сервер "kcaptcha" (первую букву убрал).

 

#12 2007-12-07 19:57:32

niikto
.
Зарегистрирован: 2007-04-15
Сообщений: 893
Профиль  Web-сайт

Re: PunBB: капча (captcha)

поместите всю папку из архива не тронутой на сервер, ато я запутался что именно вы сделали

Неактивен(а)

 

#13 2007-12-08 12:44:17

ital
Гость

Re: PunBB: капча (captcha)

niikto писал(а):

поместите всю папку из архива не тронутой на сервер, ато я запутался что именно вы сделали

А в какую директорию? Сюда - ...../forum/include/captcha/ ? Или в корень форума?

 

#14 2007-12-08 13:31:56

ital
Гость

Re: PunBB: капча (captcha)

P.S. В коде прописана такая строка "... include/captcha/captcha.php?" , а в архиве лежит файл "кcaptcha.php?"

 

#15 2007-12-12 00:56:54

niikto
.
Зарегистрирован: 2007-04-15
Сообщений: 893
Профиль  Web-сайт

Re: PunBB: капча (captcha)

Сами файлы капчи в прикреплённом файле. у меня они лежат в папке:
include/captcha/

поэтому их туда и распаковывайте (только чтобы не получилось  include/captcha/captcha - смотрите)

в архиве есть и кcaptcha.php и captcha.php

я вот думаю - у меня форум в кроне а у вас в подпапке forum - может в этом дело...

Неактивен(а)

 

#16 2007-12-12 18:46:14

ital
Гость

Re: PunBB: капча (captcha)

В архиве только кcaptcha.php, а есть ссылка выше на архив с captcha, но почему-то без расширения php, может у меня комп глючит ...!? Попробую его рассширить ...

 

#17 2007-12-12 19:57:02

niikto
.
Зарегистрирован: 2007-04-15
Сообщений: 893
Профиль  Web-сайт

Re: PunBB: капча (captcha)

Неактивен(а)

 

#18 2007-12-12 22:24:02

ital
Гость

Re: PunBB: капча (captcha)

niikto писал(а):

http://fouroom.ru/download.php?aid=5

Да тоже самое - не фурычит ...! Бог с ней, спасибо за помощь! Поставил простенькую капчу без картинок на сложение и вычитание. С неделю полёт нормальный - спама пока нет!

 

#19 2007-12-13 07:53:34

niikto
.
Зарегистрирован: 2007-04-15
Сообщений: 893
Профиль  Web-сайт

Re: PunBB: капча (captcha)

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

Неактивен(а)

 

#20 2008-02-07 15:04:27

Александр@WP-web
Гость

Re: PunBB: капча (captcha)

install_mod_imgver.zip поврежден - закачайте, пожалуйста, еще раз.

 

#21 2008-02-12 18:14:15

Александр@WP-web
Гость

Re: PunBB: капча (captcha)

уважаемые, выложите неполоманный файл - СПАСИБО!

 

#22 2008-02-13 16:52:05

Александр@WP-web
Гость

Re: PunBB: капча (captcha)

искренне удивлен опенсорс сообществом панбб - такой "отзывчивости" еще нигде не встречал!

может это тут считается платной услугой? назовите цену тогда.

 

#23 2008-02-13 18:58:56

Александр@WP-web
Гость

Re: PunBB: капча (captcha)

решение проблемы с этим файлом - здесь

 

#24 2008-09-24 07:36:35

rrrr
Гость

Re: PunBB: капча (captcha)

вот так вот .... есть о чём задуматься ...
пластиковые окна

 

#25 2008-10-07 11:10:38

krey
Гость

Re: PunBB: капча (captcha)

rrrr писал(а):

вот так вот .... есть о чём задуматься ...
пластиковые окна

я в шоке. капча стоит, а спам появляется. в раздеде про капчу insomnea

 

Низ страницы