У даній статті я постараюся пояснити як створити з 0 форму зворотного зв'язку на php із захистом від спам розсилок. І так приступимо до написання коду скрипта.
1. Для початок створимо головний файл index.php і додамо в нього просту форму на html:
Давайте розберемо, що написано вище, щоб потім не виникало питань.
action = "request.php" - файл, на який ми будемо пересилати дані з форми
method = "POST" - метод передачі "POST" даних у формі
2. Тепер створимо файл request.php в одній папці з index.php і додамо в нього наступне:
Через CSS зможете оформити форму, як захочете, про це розповідати не буду, наведу простий приклад.
![Форма зворотнього зв'язку php (зв'язку) Форма зворотнього зв'язку php](https://images-on-off.com/images/158/formaobratnoysvyaziphp-964d7a75.jpg)
Форма готова, перш ніж йти далі, перевірте її працездатність, якщо все працює, переходимо далі.
Захист форми від спаму
Найпростіший і оптимальний спосіб захисту від спаму в формі від спам-розсилок - це додавання в форму невидимих полів.
Ідея така: Спам-робот, намагається заповнити всі поля (навіть якщо їх не видно), природно користувач не може їх заповнити, так як вони для нього не існують і ми цим скористаємося, додавши просте правило - "якщо приховане поле заповнене, то відправка листи скасовується, якщо не заповнено, то відправляється ". І так приступимо.
1. Додамо нове поле в нашу форму:
У ньому ми прибрали всі зайві атрибути, так як вони нам ні до чого і залишимо тільки тип і ім'я поля, а так же додамо клас, щоб через CSS ми його сховали для користувача.
2. Додамо правило для CSS в файлі стилів:
Або якщо немає файлу стилів, то додамо в index.php між тегом head, наступну запис:
3. Ми створили поле і приховали його, тепер потрібно додати умови в файлі request.php:
Отримаємо текст з поля спам, для цього додамо рядок, на початку:
І додамо умови, для перевірки на спам.
В результаті отримаємо такий request.php:
Перевіряємо і якщо працює, то у вас через форму тепер не буде проходити спам.
Як бонус, покажу, як виводити подячний текст.
Додавання подячного тексту
1. У файл index.php додамо наступну запис (можна в будь-якому місці):
Тут йде перевірка на Get параметр, який ми видаємо в файлі request.php, якщо форма вирушила і якщо це сталося, до додається даний блок:
2. Тепер в стилях зробимо його фіксованим, щоб не де заважав і його було видно:
3. Відмінно, при відправці блок з'являється, але залишається висіти і хочеться, щоб через кілька секунд він пропав, для цього скористаємося jquery.
Для початку підключимо бібліотеку між тегами head.
І нижче цієї записи додамо наступний скрипт:
Тут досить все просто, при завантаженні сторінки блок плавно зникає з перебігу 5 секунд.
Якщо потрібно, щоб форма зберігала введені значення в полях форми після відправки, то трохи поправимо виклик полів: