Weinwanderung – Gewinnspiel

<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Weinwanderung 6.0 Gewinnspiel</title>
    <style>
        body { font-family: Arial, sans-serif; text-align: center; padding: 20px; }
        .container { max-width: 600px; margin: auto; border: 1px solid #ccc; padding: 20px; }
        input, button { margin: 10px 0; }
    </style>
</head>
<body>
    <?php
    // PHP-Code hier einfügen
    session_start();

    // Überprüfen, ob die tatsächlichen Schritte bereits eingegeben wurden
    $actualSteps = isset($_SESSION['actualSteps']) ? $_SESSION['actualSteps'] : null;

    // Ein Array, um die Schätzungen und Namen zu speichern
    $guesses = isset($_SESSION['guesses']) ? $_SESSION['guesses'] : [];

    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        if (isset($_POST['actualSteps'])) {
            // Tatsächliche Schritte speichern
            $_SESSION['actualSteps'] = $_POST['actualSteps'];
        } elseif (isset($_POST['name']) && isset($_POST['schaetzung'])) {
            // Benutzerschätzung speichern
            $guesses[] = ['name' => $_POST['name'], 'schaetzung' => $_POST['schaetzung']];
            $_SESSION['guesses'] = $guesses;
        }
    }

    // Funktion zur Ermittlung der Gewinner
    function getWinners($actualSteps, $guesses) {
        // Differenz zwischen tatsächlichen Schritten und Schätzungen berechnen
        foreach ($guesses as $key => $entry) {
            $guesses[$key]['difference'] = abs($actualSteps - $entry['schaetzung']);
        }

        // Sortieren der Schätzungen nach Nähe zu den tatsächlichen Schritten
        usort($guesses, function($a, $b) {
            return $a['difference'] <=> $b['difference'];
        });

        // Die besten 3 Schätzungen auswählen
        return array_slice($guesses, 0, 3);
    }

    // Gewinner ermitteln, wenn die tatsächlichen Schritte bekannt sind
    $winners = $actualSteps ? getWinners($actualSteps, $guesses) : [];
    ?>

    <div class="container">
        <h1>Weinwanderung 6.0</h1>
        <p>Wie viele Schritte haben wir heute zurückgelegt?</p>
        <?php if ($actualSteps): ?>
            <h2>Die Gewinner sind:</h2>
            <ol>
                <?php foreach ($winners as $winner): ?>
                    <li><?= htmlspecialchars($winner['name']) ?>, Differenz: <?= $winner['difference'] ?></li>
                <?php endforeach; ?>
            </ol>
        <?php else: ?>
            <form action="<?= $_SERVER['PHP_SELF']; ?>" method="post">
                <input type="text" name="name" placeholder="Dein Name" required><br>
                <input type="number" name="schaetzung" placeholder="Deine Schätzung" required><br>
                <button type="submit">Teilnehmen</button>
            </form>
            <form method="post">
                <label for="actualSteps">Tatsächliche Schritte:</label>
                <input type="number" id="actualSteps" name="actualSteps" required>
                <button type="submit">Auslosung</button>
            </form>
        <?php endif; ?>
    </div>
</body>
</html>
© Daniel Kern