Update December flights form and trip data

- Update form fields: Change 'Имя' to 'Фамилия, имя', add required phone field
- Add PDF upload for drone registration notice (BVS notice)
- Update trip conditions: Change 'Поездки с полетами дронов' to 'Дронослёты'
- Update submission deadline from 7 days to 5 days for drone flights
- Add detailed time departure info with location dependency
- Update privacy consent text and add centered consent header
- Hide November 2025 flights (set active: false)
- Update December 2025 flights image to winter drone photo
- Add backend validation for phone field and PDF file upload (max 5MB, PDF only)
- Update email notification function for consistent handling
This commit is contained in:
Kirik
2025-11-10 19:10:07 +01:00
parent 5a68ee77b6
commit b08063eb1b
2 changed files with 24 additions and 28 deletions
+21 -25
View File
@@ -13,17 +13,31 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$bvs_number = trim($_POST['bvs_number'] ?? '');
$trip_period = trim($_POST['trip_period'] ?? '');
$consent = isset($_POST['privacy_consent']) ? 'agree' : '';
$bvs_file = $_FILES['bvs_file'] ?? null;
// Валидация
if (empty($name) || empty($consent)) {
$error = "Обязательные поля: Имя, Согласие на обработку данных.";
$error = "Обязательные поля: Фамилия, имя, Согласие на обработку данных.";
} elseif (empty($phone)) {
$error = "Обязательное поле: Телефон.";
} elseif (empty($email) && empty($telegram)) {
$error = "Укажите email или Telegram ник (одно из двух обязательно).";
} elseif (!empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error = "Некорректный email адрес.";
} elseif ($consent !== 'agree') {
$error = "Для отправки заявки необходимо согласие на обработку персональных данных.";
} else {
} elseif (!empty($bvs_file) && $bvs_file['error'] !== UPLOAD_ERR_NO_FILE) {
// Проверка загруженного файла
if ($bvs_file['error'] !== UPLOAD_ERR_OK) {
$error = "Ошибка при загрузке файла. Попробуйте еще раз.";
} elseif ($bvs_file['size'] > 5242880) { // 5MB
$error = "Размер файла не должен превышать 5 МБ.";
} elseif (mime_content_type($bvs_file['tmp_name']) !== 'application/pdf') {
$error = "Допустим только формат PDF.";
}
}
if (!isset($error)) {
// Подготавливаем данные заявки
$form_data = [
'name' => $name,
@@ -32,7 +46,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
'telegram' => $telegram,
'bvs_number' => $bvs_number,
'trip_period' => $trip_period,
'consent' => $consent
'consent' => $consent,
'bvs_file' => $bvs_file ? $bvs_file['name'] : ''
];
$success_messages = [];
@@ -40,27 +55,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// 1. Отправка email (если включено)
if ($settings['send_email']) {
$to = "test@yourdomain.com"; // ЗАМЕНИТЕ на ваш тестовый email!
$email_subject = "Новая заявка на поездку от " . $name;
$email_body = "Новая заявка на планирование поездки:\n\n";
$email_body .= "Имя: " . $name . "\n";
$email_body .= "Email: " . $email . "\n";
$email_body .= "Телефон: " . ($phone ?: 'не указан') . "\n";
$email_body .= "Telegram: " . ($telegram ?: 'не указан') . "\n";
$email_body .= "Учётный номер БВС/Вариант поездки: " . ($bvs_number ?: 'не указано') . "\n";
$email_body .= "Период поездки: " . ($trip_period ?: 'не выбран') . "\n";
$email_body .= "Согласие на обработку данных: Да\n\n";
$email_body .= "---\n";
$email_body .= "Отправлено с: " . $_SERVER['HTTP_HOST'] . "\n";
$email_body .= "Дата: " . date('Y-m-d H:i:s') . "\n";
$email_body .= "IP: " . $_SERVER['REMOTE_ADDR'] . "\n";
$headers = "From: noreply@sleeptrip.ru\r\n";
$headers .= "Reply-To: " . $email . "\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
$headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
if (mail($to, $email_subject, $email_body, $headers)) {
$email_sent = send_email_notification($form_data, 'plan');
if ($email_sent) {
$success_messages[] = "Email отправлен";
} else {
$error_messages[] = "Ошибка отправки email";
+3 -3
View File
@@ -9,7 +9,7 @@
"meta": [
"Выезд: рано утром (5-6 утра)"
],
"active": true,
"active": false,
"order": 1
},
{
@@ -17,9 +17,9 @@
"title": "Полёты в декабре 2025 года",
"period": "Декабрь 2025",
"description": "Зимние полёты выходного дня во Владимирской / Московской / Тверской области.",
"image": "https://s3.regru.cloud/sleeptrip-dev/images/Klin_20241005_1.jpg",
"image": "/static/images/Rassvet_20231202_9.webp",
"meta": [
"Выезд: рано утром (5-6 утра)"
"Подача заявки минимум за 5 дней"
],
"active": true,
"order": 2