Создание страницы «Контакты»
Создайте страницу contact.php. Эта страница будет открываться по ссылке «Контакты». Скопируйте содержимое index.php в contact.php, заменив заголовок (title) и заголовок h1 на «Контакты».
Внешний вид страницы с помощью Bootstrap
Добавьте HTML-теги и классы Bootstrap. Оберните содержимое страницы в <div class="container"> после шапки и закройте его в footer.php. Расположите открывающий тег <div> до <header>, а закрывающий – после <footer>. Добавьте класс mt-5 к элементам <div> в header, contact.php (до формы) и footer.php для отступа сверху.
Создание формы обратной связи
Создайте форму в contact.php. Форма будет отправлять данные методом POST на check_contact.php. Форма должна содержать поля для имени (username), email (email), темы сообщения (subject) и сообщения (message). Используйте класс Bootstrap form-control для стилизации полей. Кнопка отправки: <input type="submit" value="Отправить" class="btn btn-success">.
Обработка формы на странице check_contact.php
Создайте check_contact.php. Запустите сессии. Получите данные из формы с помощью $_POST, очистите их от HTML-тегов с помощью htmlspecialchars и удалите пробелы с помощью trim. Сохраните данные в переменных $username, $email, $subject и $message. Используйте сессии для сохранения данных между страницами. Установите значения переменных в сессии с соответствующими ключами.
Валидация данных формы
Добавьте проверку данных:
- Имя: Проверьте длину имени с помощью strlen. Если длина <= 1 символу, выведите ошибку «Введите корректное имя».
- Email: Проверьте длину email (минимум 5 символов) и наличие символа «@» с помощью strlen и strpos. При неудаче, выведите ошибку «Вы ввели некорректный email».
- Тема сообщения: Проверьте длину темы (минимум 5 символов). Ошибка: «Тема сообщения не менее 5 символов».
- Сообщение: Проверьте длину сообщения (минимум 15 символов). Ошибка: «Сообщение не менее 15 символов».
Храните ошибки в отдельных переменных сессии (например, error_username, error_email, error_subject, error_message).
Вывод ошибок и данных формы
Выводите ошибки в <span class="text-danger"> под соответствующими полями формы. Для отображения ранее введенных данных используйте атрибут value в input полях, получая значения из сессии. Очищайте ошибки из сессии при загрузке страницы. Используйте функцию переадресации redirect() для возврата на contact.php.
Отправка письма
Если валидация пройдена, отправьте письмо с помощью mail(). Передайте получателя, тему (закодированную с помощью mb_encode_mimeheader), заголовки (отправитель, кодировка, ответ) и текст сообщения. После успешной отправки, установите сессионную переменную success_mail с сообщением об успешной отправке. Выведите сообщение об успешной отправке (success_mail) в блоке с классом text-success.
Результат: функциональная форма обратной связи с валидацией данных, выводом ошибок, сохранением данных пользователя и отправкой письма. Внешний вид формы привлекателен благодаря Bootstrap.