ФорумПрограммированиеПыхнуть хотите?F.A.Q. → Подробная интеграция скрипта CAPTCHA, к форме обратной связи.

Подробная интеграция скрипта CAPTCHA, к форме обратной связи.

  • Diablos

    Сообщения: 1 Репутация: N Группа: Кто попало

    Spritz 18 августа 2007 г. 19:33

    Для работы скрипта нужна библиотека GD Library v.2
    Первое что делаем, проверяем, установлена она или нет. Для этого надо создать небольшой скрипт PHP.

    1) Открываем любой HTML редактор (к примеру Adobe Dreamweaver), создаём новый PHP документ, и пишем код:

    <?php
    phpinfo();
    ?>


    2) Сохраняем с любым именем, например info.php и закачиваем на сервер (сайт).

    3) Вводим в браузере http://www.ваш_сайт.ru/info.php

    4) Теперь для быстроты поиска GD Library, в браузере жмём "Правка -> Найти (в разных браузерах, по-разному) -> В поиск вводим GD Version -> Найти"

    4.1) Если нашло данную строчку, справа смотрим версию GD Library, если она версии 2-ой, то можно закрывать страницу и удалять созданный ранее info.php.

    4.2) Если такая строчка не нашлась или нашлась, но версия GD Library 1, то тогда пишите письмо своему хостеру, чтобы установили или обновили GD Library. (Обычно у популярных компаний которые предоставляют свои услуги по размещение и поддержке веб - страниц на сервере, GD Library установлена, и при просьбе обновить её, они это делают.)

    5) После того как вы проверили, или вам установили её, или обновили. Скачайте если ещё не скачан, скрипт CAPTCHA отсюда http://www.captcha.ru/kcaptcha/.

    6) Распакуйте скачанный архив kcaptcha.zip куда хотите, потом закачайте распакованную папку kcaptcha на свой сайт.

    Теперь нам нужна форма обратной связи, рекомендую PHPSendMail v2.1.2.

    7) Заходим на яндекс, вводим PHPSendMail v2.1.2, находим, скачиваем и распаковываем.
    Внутри, нам нужны 8 файлов:
    config.inc
    footer.inc
    form.inc
    header.inc
    index.php
    test.php
    readme.txt
    recip.txt


    8)Открываем readme.txt, переходим сразу к НАСТРОЙКА И УСТАНОВКА, очень внимательно читаем и делаем всё как там написано. А лучше, как я напишу (так быстрее). =)

    8.1) Открываем test.php в HTML редакторе (к примеру, Adobe Dreamweaver) и находим строчку
    $mail = "[email protected]";
    Заменяем [email protected] на свой e-mail и сохраняем (ctrl+s) файл.

    8.2) Теперь закачиваем этот файл на свой сайт и в браузере пишем следующее - http://www.ваш_сайт.ru/test.php. После того как получили подтверждение об отправке сообщения, проверяем свою почту, там должно быть новое сообщение (если нет тогда читаем readme.txt).

    8.3) Теперь можно удалить test.php с сайта.

    8.4) Открываем recip.txt и вписываем свой e-mail, сохраняем файл.

    8.5) Открываем с помощью блокнота config.inc, находим строчку:
    $config['url_path'] = "/";

    И вместо / пишем /index.html (или на другую страничку, как сами захотите).

    8.6) Тамже, находим:
    $config['recip_f'] = "./recip.txt";

    Если вы форму закачали в какую-то папку, то тут перед /recip.txt надо указать эту папку (например: phpsendmail/recip.txt). Точно также и со строчками:
    $config['header'] = "./header.inc"; 
    $config['footer'] = "./footer.inc";

    Теперь файл можно сохранить.

    Теперь начнём прикручивать CAPTCHA к форме обратной связи.

    9) Для этого откройте index.php в HTML редакторе и после первой строчки:
    <?php

    Пишем:
    session_start();


    10) Дальше, в этомже файле ищем комментарий (# Пытаемся послать сообщение) и за ней вставляем:

    if(count($_POST)>0){
    if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){

    Чуть ниже ищем:

    $notice['error'] = "Системная ошибка - сбой функции "mail"";
    }

    И за ней пишем:

    }else{
    echo "Не верно введён код, попробуйте ещё раз.";
    }
    }
    unset($_SESSION['captcha_keystring']);


    11) Теперь надо сделать чтобы поле ввода кода, было обязательным для заполнения. Ищем строчку:
    $var['fields'] = array("name"=>"имя", "email"=>"e-mail", "subject"=>"заголовок", "message"=>"текст сообщения",);

    И после "текст сообщения", перед скобкой, пишем:
    "keystring"=>"Введите код"

    Сохраняем файл.

    12) Открываем файл form.inc, находим там (в самом конце):

    <tr>
    <td align="right" valign="top">
    <p class="T">Сообщение:</td>
    <td><textarea class="F3" name="message" rows="6" cols="45"><?php if (!empty($_POST['message'])) echo htmltoform($_POST['message']); ?></textarea></td>
    </tr>

    И под ней пишем следующее:

    <tr><td align="left">
    <p class="F3">Введите код:</td>
    <td>
    <img src="/kcaptcha/index.php?<?php echo session_name()?>=<?php echo session_id()?>"><br/>
    <input type="text" name="keystring">
    </td></tr>


    12) Сохраняем файл и закачиваем его и остальные файлы (кроме test.php и readme.txt) на сайт.

    13) И напоследок, вставляем ссылку на форму обратной связи куда хотите:
    <a href="http://www.ваш_сайт.ru/index.php">Обратная связь</a>


    Всё! форма с защитой от спам-роботов готова.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!