safeLoad(); function checkboxArrayToString($value) { if (is_array($value) && count($value) > 0) { return implode(', ', $value); } return 'None'; } function yesNo($value) { return !empty($value) ? 'Yes' : 'No'; } // Honeypot spam protection if (!empty($_POST['website'])) { exit('Spam detected.'); } // Privacy consent required if (empty($_POST['privacy'])) { exit('Privacy consent required.'); } // Personal $first_name = trim($_POST['first_name'] ?? ''); $last_name = trim($_POST['last_name'] ?? ''); $name = trim("$first_name $last_name"); $email = trim($_POST['email'] ?? ''); $phone = trim($_POST['phone'] ?? ''); // Attendance $attendance = $_POST['attendance'] ?? 'Unknown'; // Drinks $drinks = checkboxArrayToString($_POST['drinks'] ?? []); // Diet $diet = $_POST['diet'] ?? 'Not specified'; // Allergies $allergies = checkboxArrayToString($_POST['allergies'] ?? []); $allergies_other = trim($_POST['allergies_other'] ?? ''); // Organization $parking = yesNo($_POST['parking'] ?? ''); $ride_needed = yesNo($_POST['ride_needed'] ?? ''); $ride_offer = yesNo($_POST['ride_offer'] ?? ''); $hotel = yesNo($_POST['hotel'] ?? ''); $hotel_booked = yesNo($_POST['hotel_booked'] ?? ''); // Memories $memory_card = yesNo($_POST['memory_card'] ?? ''); $photo_link = yesNo($_POST['photo_link'] ?? ''); // Entertainment $music_request = trim($_POST['music_request'] ?? ''); $contribution = checkboxArrayToString($_POST['contribution'] ?? []); // Children $children = $_POST['children'] ?? 'No'; $children_count = trim($_POST['children_count'] ?? ''); $children_ages = trim($_POST['children_ages'] ?? ''); // Message $message = trim($_POST['message'] ?? ''); // UTF-8 conversion $fields = [ &$name, &$email, &$phone, &$attendance, &$drinks, &$diet, &$allergies, &$allergies_other, &$music_request, &$contribution, &$children, &$children_count, &$children_ages, &$message ]; foreach ($fields as &$field) { $field = mb_convert_encoding($field, 'UTF-8', 'auto'); } $mail = new PHPMailer(true); try { $mail->CharSet = 'UTF-8'; $mail->isSMTP(); $mail->Host = $_ENV['SMTP_HOST']; $mail->SMTPAuth = true; $mail->Username = $_ENV['SMTP_USER']; $mail->Password = $_ENV['SMTP_PASS']; $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; $mail->Port = (int)$_ENV['SMTP_PORT']; $mail->setFrom($_ENV['FROM_EMAIL'], $_ENV['FROM_NAME']); $mail->addAddress($_ENV['TO_EMAIL']); $mail->Subject = mb_encode_mimeheader( "Wedding RSVP: $name", 'UTF-8' ); $body = <<Body = $body; file_put_contents( __DIR__ . '/debug.txt', print_r($_POST, true) ); echo "PHP WORKS"; exit; } catch (Exception $e) { echo "RSVP could not be sent. Mailer Error: {$mail->ErrorInfo}"; }