From f02f7bc27cf93cd7b3c57084df0329547fbbcd13 Mon Sep 17 00:00:00 2001 From: Kirik Date: Wed, 3 Sep 2025 15:25:09 +0200 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD=20send=5Fplan=5Fsimple.php=20=D0=BF=D0=BE=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=B7=D1=86=D1=83=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=87=D0=B5=D0=B3=D0=BE=20send=5Fask.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Убраны эмодзи из заголовков на странице plan - Упрощена структура PHP скрипта как в send_ask.php - Убрана вся сложная отладка и проверки - Используется стандартный redirect с параметрами success/error - Возвращена форма на send_plan_simple.php --- content/plan.md | 8 +- static/api/send_plan_simple.php | 207 ++++++++++---------------------- 2 files changed, 70 insertions(+), 145 deletions(-) diff --git a/content/plan.md b/content/plan.md index 03abf4a..d9fd754 100755 --- a/content/plan.md +++ b/content/plan.md @@ -22,17 +22,17 @@ disableComments = true ## Условия участия -### 🚁 Поездки с полетами дронов +### Поездки с полетами дронов - **Подача заявки:** минимум за 7 дней до поездки - **Обсуждение деталей:** [Telegram чат "Полёты БВС"](https://t.me/polet_bvs) -### 🚗 Поездки без дронов +### Поездки без дронов - **Подача заявки:** минимум за 2-3 дня до поездки - **Обсуждение деталей:** [Telegram чат "Пока ты спал"](https://t.me/sleeptrip_rec) Можете предложить собственное направление, даты и профиль попутчиков. -### ⚠️ Важная информация +### Важная информация - **Время выезда:** рано утром (5-6 утра из Москвы) для избежания пробок - **Email:** проверьте папку "Нежелательные" - ответ может попасть туда @@ -120,7 +120,7 @@ disableComments = true submitBtn.textContent = 'Отправляем...'; submitBtn.disabled = true; - fetch('/api/test.php', { + fetch('/api/send_plan_simple.php', { method: 'POST', body: formData }) diff --git a/static/api/send_plan_simple.php b/static/api/send_plan_simple.php index 878e3af..56e1414 100644 --- a/static/api/send_plan_simple.php +++ b/static/api/send_plan_simple.php @@ -1,151 +1,76 @@ 'forms_helper.php не найден', - 'path' => $helper_path, - 'current_dir' => $current_dir, - 'files' => $available_files - ]); - exit; -} - -if (!file_exists($env_path)) { - error_log("ОШИБКА: .env не найден: " . $env_path); - http_response_code(500); - echo json_encode([ - 'error' => '.env файл не найден', - 'path' => $env_path, - 'current_dir' => $current_dir, - 'files' => $available_files - ]); - exit; -} - -require_once $helper_path; +require_once 'forms_helper.php'; // Загружаем настройки из .env -load_env_file($env_path); +load_env_file('.env'); $settings = get_forms_settings(); -error_log("Настройки загружены: " . json_encode($settings)); +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $name = trim($_POST['name'] ?? ''); + $email = trim($_POST['email'] ?? ''); + $phone = trim($_POST['phone'] ?? ''); + $telegram = trim($_POST['telegram'] ?? ''); + $bvs_number = trim($_POST['bvs_number'] ?? ''); + $trip_period = trim($_POST['trip_period'] ?? ''); + $consent = isset($_POST['privacy_consent']) ? 'agree' : ''; + $age_consent = isset($_POST['age_consent']) ? 'agree' : ''; -// CORS заголовки для безопасности -header('Access-Control-Allow-Origin: *'); -header('Access-Control-Allow-Methods: POST'); -header('Access-Control-Allow-Headers: Content-Type'); -header('Content-Type: application/json'); + // Валидация + if (empty($name) || empty($consent) || empty($age_consent)) { + $error = "Имя и согласия обязательны для заполнения."; + } elseif (empty($email) && empty($telegram)) { + $error = "Укажите email или Telegram ник (одно из двух обязательно)."; + } elseif (!empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL)) { + $error = "Некорректный email адрес."; + } else { + // Формируем данные заявки + $form_data = [ + 'name' => $name, + 'email' => $email, + 'phone' => $phone, + 'telegram' => $telegram, + 'bvs_number' => $bvs_number, + 'trip_period' => $trip_period, + 'consent' => $consent, + 'age_consent' => $age_consent + ]; + + $success_messages = []; + $error_messages = []; + + // Отправка в Telegram (если включено) + if ($settings['send_telegram']) { + $telegram_message = "🎒 *Новая заявка на поездку*\n\n"; + $telegram_message .= "👤 *Имя:* " . $name . "\n"; + if (!empty($email)) $telegram_message .= "📧 *Email:* " . $email . "\n"; + if (!empty($phone)) $telegram_message .= "📱 *Телефон:* " . $phone . "\n"; + if (!empty($telegram)) $telegram_message .= "💬 *Telegram:* " . $telegram . "\n"; + if (!empty($trip_period)) $telegram_message .= "🗓️ *Поездка:* " . $trip_period . "\n"; + if (!empty($bvs_number)) $telegram_message .= "✈️ *БВС/Дополнительно:* " . $bvs_number . "\n"; + $telegram_message .= "\n⏰ *Время:* " . date('Y-m-d H:i:s'); + + $telegram_result = send_telegram_message($telegram_message, $settings); + if ($telegram_result['success']) { + $success_messages[] = 'Заявка отправлена в Telegram!'; + } else { + $error_messages[] = 'Ошибка отправки в Telegram: ' . $telegram_result['error']; + } + } + + // Результат + if (!empty($success_messages)) { + $success = implode(' ', $success_messages); + header('Location: /plan/?success=' . urlencode($success)); + exit; + } else { + $error = !empty($error_messages) ? implode(' ', $error_messages) : 'Произошла ошибка при отправке заявки.'; + } + } +} -if ($_SERVER['REQUEST_METHOD'] !== 'POST') { - http_response_code(405); - echo json_encode(['error' => 'Метод не разрешен']); +// Показ ошибки +if (isset($error)) { + header('Location: /plan/?error=' . urlencode($error)); exit; } - -// Проверяем настройки Telegram -if (!$settings['send_telegram']) { - http_response_code(500); - echo json_encode(['error' => 'Отправка в Telegram отключена']); - exit; -} - -// Получаем данные из формы -$name = trim($_POST['name'] ?? ''); -$email = trim($_POST['email'] ?? ''); -$phone = trim($_POST['phone'] ?? ''); -$telegram = trim($_POST['telegram'] ?? ''); -$bvs_number = trim($_POST['bvs_number'] ?? ''); -$trip_period = trim($_POST['trip_period'] ?? ''); -$consent = isset($_POST['privacy_consent']) ? 'yes' : 'no'; -$age_consent = isset($_POST['age_consent']) ? 'yes' : 'no'; - -// Валидация -$errors = []; - -if (empty($name)) { - $errors[] = 'Имя обязательно'; -} - -if (empty($email) && empty($telegram)) { - $errors[] = 'Укажите email или Telegram ник'; -} - -if (!empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL)) { - $errors[] = 'Некорректный email адрес'; -} - -if ($consent !== 'yes') { - $errors[] = 'Необходимо согласие на обработку данных'; -} - -if ($age_consent !== 'yes') { - $errors[] = 'Необходимо подтверждение совершеннолетия'; -} - -if (!empty($errors)) { - http_response_code(400); - echo json_encode(['error' => implode('. ', $errors)]); - exit; -} - -// Формируем сообщение для Telegram -$message = "🎒 *Новая заявка на поездку*\n\n"; -$message .= "👤 *Имя:* " . htmlspecialchars($name) . "\n"; - -if (!empty($email)) { - $message .= "📧 *Email:* " . htmlspecialchars($email) . "\n"; -} - -if (!empty($phone)) { - $message .= "📱 *Телефон:* " . htmlspecialchars($phone) . "\n"; -} - -if (!empty($telegram)) { - $message .= "💬 *Telegram:* " . htmlspecialchars($telegram) . "\n"; -} - -if (!empty($trip_period)) { - $message .= "🗓️ *Поездка:* " . htmlspecialchars($trip_period) . "\n"; -} - -if (!empty($bvs_number)) { - $message .= "✈️ *БВС/Дополнительно:* " . htmlspecialchars($bvs_number) . "\n"; -} - -$message .= "\n⏰ *Время подачи:* " . date('Y-m-d H:i:s'); - -// Отправляем в Telegram через готовую функцию -$telegram_result = send_telegram_message($message, $settings); - -if (!$telegram_result['success']) { - http_response_code(500); - echo json_encode(['error' => 'Ошибка отправки в Telegram: ' . $telegram_result['error']]); - exit; -} - -// Успех! -echo json_encode([ - 'success' => true, - 'message' => 'Заявка успешно отправлена!' -]); ?> \ No newline at end of file