prepare("SELECT id FROM participants WHERE email = ?"); $stmt->execute([$email]); if ($stmt->fetch()) { $error = 'Questo indirizzo email ha già partecipato. È consentito un solo invio per email.'; } else { $pdo->beginTransaction(); // Insert participant $stmt = $pdo->prepare("INSERT INTO participants (email, nickname) VALUES (?, ?)"); $stmt->execute([$email, $nickname]); $participant_id = $pdo->lastInsertId(); // Insert submissions $stmt_submission = $pdo->prepare("INSERT INTO submissions (participant_id, question_id, answer_id) VALUES (?, ?, ?)"); foreach ($answers as $question_id => $answer_id) { $stmt_submission->execute([$participant_id, $question_id, $answer_id]); } $pdo->commit(); // Send confirmation email $subject = 'Grazie per aver partecipato al nostro Quiz!'; $body = "Ciao {$nickname},

Grazie per aver inviato le tue risposte. I risultati saranno pubblicati al termine del concorso.

In bocca al lupo!"; MailService::sendMail($email, $subject, $body, strip_tags($body)); $message = 'Grazie per aver partecipato! Hai inviato con successo le tue risposte e riceverai una mail di conferma a breve.'; $submitted_successfully = true; } } catch (Exception $e) { if ($pdo->inTransaction()) { $pdo->rollBack(); } $error = "Si è verificato un errore durante l'invio. Riprova. Dettagli: " . $e->getMessage(); } } } // Fetch questions and answers for the form $questions = []; if (!$submitted_successfully) { try { $stmt = $pdo->query("SELECT id, question_text, points FROM questions ORDER BY id"); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $question_id = $row['id']; $row['answers'] = []; $stmt_answers = $pdo->prepare("SELECT id, answer_text FROM answers WHERE question_id = ? ORDER BY id"); $stmt_answers->execute([$question_id]); $row['answers'] = $stmt_answers->fetchAll(PDO::FETCH_ASSOC); $questions[] = $row; } } catch (Exception $e) { $error = "Impossibile caricare le domande del quiz. Dettagli: " . $e->getMessage(); } } ?> Quiz Eleganza Motoristica
Spazio per logo e info

Quiz The Unheard Edition 2025

I tuoi dati

$q): ?>

( punti)