Переделан send_plan_simple.php по образцу рабочего send_ask.php

- Убраны эмодзи из заголовков на странице plan
- Упрощена структура PHP скрипта как в send_ask.php
- Убрана вся сложная отладка и проверки
- Используется стандартный redirect с параметрами success/error
- Возвращена форма на send_plan_simple.php
This commit is contained in:
Kirik
2025-09-03 15:25:09 +02:00
parent f1e03c20f8
commit f02f7bc27c
2 changed files with 70 additions and 145 deletions
+4 -4
View File
@@ -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
})
+66 -141
View File
@@ -1,151 +1,76 @@
<?php
/**
* Упрощенная отправка заявки на поездку через существующую инфраструктуру
* Использует forms_helper.php и .env настройки
*/
// Отладочная информация
error_log("send_plan_simple.php запущен");
// Проверяем текущую директорию и файлы
$current_dir = __DIR__;
$available_files = scandir($current_dir);
error_log("Текущая директория: " . $current_dir);
error_log("Файлы в директории: " . implode(', ', $available_files));
// Проверяем существование файлов (в той же папке /api/)
$helper_path = __DIR__ . '/forms_helper.php';
$env_path = __DIR__ . '/.env';
if (!file_exists($helper_path)) {
error_log("ОШИБКА: forms_helper.php не найден: " . $helper_path);
http_response_code(500);
echo json_encode([
'error' => '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' => 'Заявка успешно отправлена!'
]);
?>