PHP для новичков: форма обратной связи на сайте

Создание страницы «Контакты»

Создайте страницу 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.

Что будем искать? Например,программа