Задача
На одностраничном сайте (лендинге) требуется разработать минималистичную, но надёжную систему сбора лидов.
1. Фронтенд: Форма заявки на сайте
- Поля для заполнения: Имя, Телефон, Комментарий (необязательно).
- Простая валидация на стороне клиента: поля «Имя» и «Телефон» обязательны для заполнения.
- Отправка данных осуществляется без перезагрузки страницы при помощи технологии AJAX (fetch).
- Интерактивные состояния формы: показать сообщения «Отправляем…», «Успешно отправлено», «Ошибка при отправке».
- Защита от повторной отправки: заблокировать кнопку Submit на время выполнения запроса, чтобы не создавать дублирующиеся заявки.
2. Бэкенд: Обработка и сохранение заявок
- Создать PHP-скрипт (или другой обработчик на выбор исполнителя), который принимает данные из формы методом POST.
- Валидировать полученные данные на сервере: проверить заполнение обязательных полей, очистить от HTML-тегов, убрать лишние пробелы.
- Сохранить заявку в базу данных (например MySQL / SQLite JSON-файл / простой текстовый файл с учетом требования исполнителя). Лучший компромисс между скоростью разработки: хранение в файле CSV/JSON или упрощённом очевидном решении.
- Зафиксировать временную отметку (timestamp), подтверждающую дату и время создания заявки.
- В ответ на корректно обработанную заявку отправлять клиенту JSON-сообщение: «статус: успех». При ошибке отдавать описание проблемы.
3. Админ-страница для просмотра заявок
- Реализовать минимальную защищённую админку (например, через базовую HTTP-аутентификацию: .htaccess / .htpasswd на уровне папки admin).
- Выводить список всех поданных заявок в виде удобной таблички с колонками: номер, имя, телефон, комментарий, дата создания.
- Предусмотреть возможность отметить статус: обработана/не обработана (например, отметка галочкой).
- Дать простую реализацию: не подключать тяжёлые фреймворки, по возможности только чистый HTML/PHP + минимальные универсальные блоки.
Примечания
Все внутренние трёппинг-лид-трекеры и внешние сервисы (CRM) не подключаем, только простая локальная база.