<?php
$errors = ""; // Инициализируем переменную ошибок
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// 1. Проверка Имени
if (isset($_POST["name"]) && trim($_POST["name"]) != "") {
$name = trim($_POST["name"]);
if (preg_match("/^[А-Яа-яЁёA-Za-z\s\-]{2,40}$/u", $name)) {
$name = htmlspecialchars($name);
} else {
$errors .= "Пожалуйста, введите корректное имя (только буквы, от 2 до 40 символов).<br>";
}
} else {
$errors .= "Пожалуйста, введите ваше имя.<br>";
}
// 2. Проверка Email
if (isset($_POST["email"]) && $_POST["email"] != "") {
$email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors .= "Пожалуйста, введите корректный Email.<br>";
}
} else {
$errors .= "Пожалуйста, введите ваш Email.<br>";
}
// 3. Получаем остальные данные
$gender = $_POST['gender'] ?? 'Не указан';
if ($gender == 'female') $gender = 'Женский';
if ($gender == 'male') $gender = 'Мужской';
$liked = $_POST['liked'] ?? [];
$disliked = $_POST['disliked'] ?? [];
$consent = isset($_POST['consent']) ? 'Да' : 'Нет';
// 4. ВЫВОД РЕЗУЛЬТАТА И СОХРАНЕНИЕ
if (!empty($errors)) {
echo "<div style='color: red; font-family: Arial;'>" . $errors . "</div>";
} else {
// Вывод данных на экран
echo "<div style='font-family: Arial; line-height: 1.6;'>";
echo "<strong>Имя:</strong> " . $name . "<br>";
echo "<strong>Email:</strong> " . $email . "<br>";
echo "<strong>Пол:</strong> " . $gender . "<br>";
echo "<strong>Согласие на обработку данных:</strong> " . $consent . "<br><br>";
echo "<strong>Что понравилось:</strong><br>";
if (!empty($liked)) {
foreach ($liked as $item) echo "- " . htmlspecialchars($item) . "<br>";
} else {
echo "- Ничего не отмечено<br>";
}
echo "<br><strong>Что не понравилось:</strong><br>";
if (!empty($disliked)) {
foreach ($disliked as $item) echo "- " . htmlspecialchars($item) . "<br>";
} else {
echo "- Ничего не отмечено<br>";
}
echo "</div>";
// --- БЛОК СОХРАНЕНИЯ В ФАЙЛ ---
$liked_str = !empty($liked) ? implode(', ', $liked) : 'Ничего не отмечено';
$disliked_str = !empty($disliked) ? implode(', ', $disliked) : 'Ничего не отмечено';
$date = date("Y-m-d H:i:s");
// Формируем красивую строку для файла
$data_to_save = "Дата: $date | Имя: $name | Email: $email | Пол: $gender | Согласие: $consent | Понравилось: $liked_str | Не понравилось: $disliked_str\n";
// Открываем файл для дозаписи. Если его нет — создастся автоматически
$file = fopen("feedback.txt", "a");
if ($file) {
fwrite($file, $data_to_save);
fclose($file);
}
// --- КОНЕЦ БЛОКА СОХРАНЕНИЯ ---
}
} else {
echo "Ошибка: Данные не были отправлены.";
}
?>